std::vector交换位置
时间: 2023-08-18 19:07:22 浏览: 236
要交换std::vector中两个元素的位置,你可以使用std::swap函数或者使用std::iter_swap函数。下面是两种方法的示例代码:
使用std::swap函数:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
std::swap(vec[0], vec[1]);
```
使用std::iter_swap函数:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
std::iter_swap(vec.begin(), vec.begin() + 1);
```
这两种方法都可以实现std::vector中两个元素的位置交换。你只需根据实际需要选择其中一种即可。
相关问题
如何交互std::vector中两个元素的位置
可以通过使用std::swap函数来交换std::vector中两个元素的位置。例如:
```c++
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec {1, 2, 3, 4, 5};
// 交换第一个元素和第三个元素的位置
std::swap(vec[0], vec[2]);
// 输出交换后的结果
for (auto i : vec) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
3 2 1 4 5
```
在这个例子中,我们使用std::swap函数来交换std::vector中的两个元素。我们将vec[0]和vec[2]作为参数传递给std::swap函数,以交换它们的值。注意,我们使用了C++11中的范围for循环来遍历std::vector中的元素。
std::vector的成员变量和成员函数
std::vector是C++标准库中的一个容器类,提供了动态数组的功能。它的成员变量和成员函数如下:
成员变量:
1. allocator_type:用于分配内存的分配器类型。
2. value_type:容器中元素的类型。
3. size_type:无符号整数类型,用于表示容器的大小。
4. difference_type:有符号整数类型,用于表示两个迭代器之间的距离。
5. reference:元素的引用类型。
6. const_reference:常量元素的引用类型。
7. iterator:迭代器类型,用于遍历容器中的元素。
8. const_iterator:常量迭代器类型,用于遍历常量容器中的元素。
9. reverse_iterator:反向迭代器类型,用于逆序遍历容器中的元素。
10. const_reverse_iterator:常量反向迭代器类型,用于逆序遍历常量容器中的元素。
成员函数:
1. 构造函数:可以创建一个空的vector,或者使用初始值列表或重复值初始化vector。
2. push_back():将元素添加到vector的末尾。
3. pop_back():删除vector的最后一个元素。
4. size():返回vector中元素的个数。
5. empty():检查vector是否为空。
6. clear():清空vector中的所有元素。
7. begin():返回指向第一个元素的迭代器。
8. end():返回指向最后一个元素之后位置的迭代器。
9. rbegin():返回指向最后一个元素的反向迭代器。
10. rend():返回指向第一个元素之前位置的反向迭代器。
11. front():返回vector的第一个元素的引用。
12. back():返回vector的最后一个元素的引用。
13. at():返回指定位置的元素的引用,带有边界检查。
14. operator[]:返回指定位置的元素的引用,不带边界检查。
15. erase():删除指定位置或指定范围内的元素。
16. insert():在指定位置插入一个或多个元素。
17. resize():改变vector的大小。
18. swap():交换两个vector的内容。