C++遍历vector数组
时间: 2023-12-16 21:02:21 浏览: 81
以下是两种C++遍历vector数组的方法:
1.使用下标的for循环
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v1;
for (int i = 0; i < 4; i++) {
v1.push_back(i);
}
for (int i = 0; i < v1.size(); i++) {
cout << v1[i] << " ";
}
cout << endl;
return 0;
}
```
2.使用迭代器的for循环
```cpp
#include <iostream>
#include <vector>
#include <iterator>
using namespace std;
int main() {
vector<int> v1;
for (int i = 0; i < 4; i++) {
v1.push_back(i);
}
vector<int>::iterator it = v1.begin();
for (it; it != v1.end(); it++) {
cout << *it << " ";
}
cout << endl;
return 0;
}
```
相关问题
c++ 用迭代器遍历vector数组
可以通过以下代码使用迭代器遍历vector数组:
```c++
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用迭代器遍历vector数组
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it)
{
std::cout << *it << " ";
}
return 0;
}
```
输出结果为:
```
1 2 3 4 5
```
其中,`vec.begin()` 返回一个指向vector第一个元素的迭代器,`vec.end()` 返回一个指向vector最后一个元素的下一个位置的迭代器,注意这个迭代器并不指向最后一个元素本身。在遍历时,使用 `*it` 取出迭代器指向的值。
如何遍历vector数组
遍历C++中的vector数组可以通过多种方式进行,以下是一些常用的遍历方法:
1. 使用基于范围的for循环(推荐使用C++11及以上版本):
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
for (int value : vec) {
std::cout << value << ' ';
}
return 0;
}
```
2. 使用迭代器遍历:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << ' ';
}
return 0;
}
```
3. 使用标准库中的算法和函数对象:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::for_each(vec.begin(), vec.end(), [](int value) {
std::cout << value << ' ';
});
return 0;
}
```
4. 使用传统的for循环:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
for (size_t i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << ' ';
}
return 0;
}
```
注意,在遍历vector的时候应该避免使用在遍历过程中可能会使vector的大小发生改变的操作,因为这可能会导致迭代器失效或者未定义的行为。
阅读全文