读书人

简单vector使用出错! 请问!

发布时间: 2012-02-07 17:45:36 作者: rapoo

简单vector使用出错!! 请教!!
int main() {
vector <Widget> v;

Widget w1(1);
Widget w2(2);
Widget w3(3);

cout < < v.size() < < endl;
v[0] = w1;
cout < < v.size() < < endl;
v[1] = w2;
cout < < v.size() < < endl;
v[2] = w3;
cout < < v.size() < < endl;

return 0;
}

Segmentation fault

不是说vector可以自动增长的么???


[解决办法]
v[0] = w1;
靠,里面什么东西都没有还v[0]?
v.push_back(w1);
下面同理
[解决办法]
自动增长 是里面的内容多了,超过容量了会自动重新分配内存并拷贝
[解决办法]
vector的自动增长是靠push_back/insert接口实现的。
看东西,其实不能看半句啊。
[解决办法]
push_back 是正解。
[解决办法]
push_back是增加,当然也可以构造的时候多分配一点,

读书人网 >C++

热点推荐