简单vector使用出错! 请问!
简单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是增加,当然也可以构造的时候多分配一点,
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是增加,当然也可以构造的时候多分配一点,