需要修复c ++脚本(不是我的)

时间:2013-07-14 15:01:38

标签: c++

我正在尝试构建的脚本中包含以下代码。

typedef std::vector< typename Sphere::vec_type > VV; 
typedef typename Sphere::vec_type vec_type; 
VV v( count , s.dimension() ); 
for ( int ii=0; ii<count; ++ii ) { 
v[ii] = randomPointOnSurface( s ); 

它产生了这个错误:

error: no matching function for call to 'std::vector<std::vector<float, std::allocator<float> >, std::allocator<std::vector<float, std::allocator<float> > > >::_M_fill_initialize(size_t, int&)'
/usr/include/c++/4.4/bits/stl_vector.h:1033: note: candidates are: void std::vector<_Tp, _Alloc>::_M_fill_initialize(size_t, const _Tp&) [with _Tp = std::vector<float, std::allocator<float> >, _Alloc = std::allocator<std::vector<float, std::allocator<float> > >]

解决方法是删除s.dimension()但是还有其他方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

你有一个嵌套的矢量,所以你需要像

这样的东西
VV v( count , vec_type(s.dimension()) ); 

这会将每个count内部向量初始化为s.dimension()