w****r 发帖数: 1384 | 1 有一个问题,就是用到如下数据结构,
vector< vector > > VofV;
其中VofV的某些位置是空的,没有数据的,
有些是带一个列表的,该怎么初始化?
我直接设置比如VofV.at(i).at(j).push_back(data d1) 被说out_of_range。后来领悟
过来没有初始化,所以(i,j)是没有数据的。
另外,VofV的大小是不固定的,随运行时需要变化。
list > >考虑过,凡是实际需要还是vector of vector更符合应
用。
大侠给点意见把。谢谢。 |
t****t 发帖数: 6806 | 2 i don't think you can create a container of reference.
【在 w****r 的大作中提到】 : 有一个问题,就是用到如下数据结构, : vector< vector > > VofV; : 其中VofV的某些位置是空的,没有数据的, : 有些是带一个列表的,该怎么初始化? : 我直接设置比如VofV.at(i).at(j).push_back(data d1) 被说out_of_range。后来领悟 : 过来没有初始化,所以(i,j)是没有数据的。 : 另外,VofV的大小是不固定的,随运行时需要变化。 : list > >考虑过,凡是实际需要还是vector of vector更符合应 : 用。 : 大侠给点意见把。谢谢。
|
h****e 发帖数: 2125 | 3 references must be bound to real objects at definition time hence you can
never dynamically allocate an array of references. Neither can they be
rebound to anything else ever. so use list instead.
【在 w****r 的大作中提到】 : 有一个问题,就是用到如下数据结构, : vector< vector > > VofV; : 其中VofV的某些位置是空的,没有数据的, : 有些是带一个列表的,该怎么初始化? : 我直接设置比如VofV.at(i).at(j).push_back(data d1) 被说out_of_range。后来领悟 : 过来没有初始化,所以(i,j)是没有数据的。 : 另外,VofV的大小是不固定的,随运行时需要变化。 : list > >考虑过,凡是实际需要还是vector of vector更符合应 : 用。 : 大侠给点意见把。谢谢。
|
w****r 发帖数: 1384 | 4 谢谢。
对阿,我怎么测试都不行,在看c++的标准发现必须在初始化的时候就给&a=b类似的赋
值,所以用指针代替了. |