我试图使用使用深度3的嵌套矢量的类成员:编译器随深度的嵌套矢量警告3个或更多
矢量<矢量<矢量>> classVariable_;
不过,我再拿到编译器警告在我的代码时,我尝试做的classVariable_.clear()这样简单的事情:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include /c++/bits/stl_vector.h:在成员函数`std :: vector < _Tp,_Alloc> & std :: vector < _Tp,_Alloc> :: operator =(const std :: vector < _Tp,_Alloc> &)[与_Tp = std :: vector>,_Alloc = std :: allocator>>]': /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_vector.h:715:警告:'__result'可能在此函数中未初始化使用 /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_unin itialized.h:82:warning:'__cur'可能在此函数中未初始化使用 /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_uninitialized.h:82:warning: '__cur'可能在此函数中未初始化使用
奇怪的是,这适用于深度为2的嵌套向量,但深度不超过3或更多。这是否与在stl库中缺少默认的运算符/构造函数有关?
有没有人知道这个清洁的解决方案?我使用cygwin编译这个,但是这不应该对此产生影响。
谢谢。
对不起......我在向量声明中省略了int: vector >> classVariable_; 同样的问题仍然适用。 :-) –
bsofman
深入3个层次是个好主意吗?如果不是绝对必要的,你可能想再看看你的方法来消除复杂性 –
bsofman:哦,好的。那么我现在就没有想法了。 :) – bcat