作者Reinhard (无价)
看板C_and_CPP
标题[问题] boost::multi_array 当中的 resize
时间Fri Feb 27 16:54:24 2009
我写了一段 code 长这样:
http://0rz.tw/13rR4
(包含了一些不相关的片段 不过不长 还请包涵)
compile 没问题
但在执行的时候会挂在第 46 行
输出下列 error msg:
video_segmentation: /usr/include/boost/multi_array/multi_array_ref.hpp:488:
boost::multi_array_ref<T, NumDims>& boost::multi_array_ref<T,
NumDims>::operator=(const ConstMultiArray&) [with ConstMultiArray =
boost::multi_array<FeaturePoint, 3u, std::allocator<FeaturePoint> >, T =
FeaturePoint, unsigned int NumDims = 3u]: Assertion
`std::equal(other.shape(),other.shape()+this->num_dimensions(),
this->shape())' failed.
Command terminated by signal 6
拜了一下估狗大神发现应该是 operator = 的问题
http://0rz.tw/kthHi
不过令人好奇的是从头到尾我并没有用到 = 呀
但实际上如果 comment 46 行
uncomment 47, 48
这样的跑法就是 OK 的 为什麽?
又,multi_array 不实作 = (最起码 dimension 不同的 =)是为什麽?这样实在很麻烦
有没有其他的替代品(ublas 我用过,还是 multi_array 比较简洁)
虽然说要绕也是可以绕过这个问题
不过还是想请板友们指点一下
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.29.130
1F:推 avhacker:应该是这行OpticalFlowInFrame load_optical_flow_info() 02/27 17:29
2F:→ avhacker:OpticalFlowInFrame 是个 multi_array. 以传值方式传回 02/27 17:29