vector遍历元素
时间: 2023-08-20 13:04:07 浏览: 91
你可以使用迭代器来遍历vector中的元素。以下是一个示例代码:
```c++
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用迭代器遍历vector中的元素
for (auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
1 2 3 4 5
```
在上面的代码中,我们使用`vec.begin()`和`vec.end()`函数来获取迭代器的起始和结束位置,然后使用`for`循环遍历整个vector,输出每个元素的值。`*it`表示迭代器指向的元素的值。
相关问题
std::vector 遍历出指定元素后从 vector 中删除该元素
在 C++ 中,可以使用 std::vector 的 erase() 函数来删除 vector 中的元素,配合迭代器可以删除指定元素。
例如,我们要遍历 vector,找到值为 3 的元素并删除:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
for (auto it = vec.begin(); it != vec.end(); ++it) {
if (*it == 3) {
vec.erase(it);
break;
}
}
```
上述代码中,我们使用迭代器遍历 vector 中的元素,当找到值为 3 的元素时,使用 erase() 函数删除该元素,并使用 break 跳出循环。
需要注意的是,使用 erase() 函数删除元素后,原来的迭代器会失效,因此要在 erase() 函数之前先保存该元素的迭代器,以便后续使用。
如果要删除 vector 中所有值为 3 的元素,可以使用 std::remove() 函数结合 erase() 函数:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5, 3};
vec.erase(std::remove(vec.begin(), vec.end(), 3), vec.end());
```
上述代码中,我们使用 std::remove() 函数将所有值为 3 的元素移动到 vector 的末尾,并返回移动后的新的“逻辑”结尾迭代器,然后使用 erase() 函数删除新的“逻辑”结尾迭代器之后的所有元素。
vector遍历数组
在C++中,你可以使用循环来遍历vector中的元素。有多种方法可以实现遍历,下面列举了两种常用的方法:
1. 使用普通for循环:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> myVector = {1, 2, 3, 4, 5};
for (int i = 0; i < myVector.size(); i++) {
std::cout << myVector[i] << " ";
}
return 0;
}
```
2. 使用范围-based for循环(C++11及以上版本支持):
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> myVector = {1, 2, 3, 4, 5};
for (int element : myVector) {
std::cout << element << " ";
}
return 0;
}
```
这两种方法都可以用来遍历vector中的元素。第一种方法使用一个普通的for循环,通过索引访问vector中的元素。第二种方法使用范围-based for循环,它会自动遍历vector中的每个元素,并将元素赋值给循环变量。
无论你选择哪种方法,都可以在循环体内对vector中的元素进行操作或输出。
希望这对你有帮助!如果你还有其他问题,请随时提问。
阅读全文