vector<int> v; for (int a = 0; a < 6; a++) { v[a] = a; } vector<int>::iterator it; for (it = v.begin(); it != v.end(); it++) { cout << *it << endl; }拿错了
时间: 2023-06-13 15:06:48 浏览: 125
2.1.6 C++和C#数据传递 -vectorofvectorofInt传递
这段代码的问题在于,在使用 `vector<int> v` 声明一个空的 `vector` 后,没有使用 `push_back` 或其他方式向 `vector` 中添加元素,直接进行下标访问 `v[a]` 会导致访问越界。正确的代码应该像这样:
```cpp
vector<int> v;
for (int a = 0; a < 6; a++) {
v.push_back(a);
}
vector<int>::iterator it;
for (it = v.begin(); it != v.end(); it++) {
cout << *it << endl;
}
```
这里使用 `push_back` 向 `vector` 中添加元素,确保 `vector` 中有足够的空间来存储元素。同时,还可以使用 C++11 的 range-based for 循环来遍历 `vector`,代码更加简洁:
```cpp
vector<int> v;
for (int a = 0; a < 6; a++) {
v.push_back(a);
}
for (int x : v) {
cout << x << endl;
}
```
阅读全文