stl中vector用法
时间: 2023-04-08 10:03:07 浏览: 111
vector是STL中的一个容器,可以动态地存储元素,类似于数组。可以使用push_back()方法向vector中添加元素,使用size()方法获取vector中元素的数量,使用at()方法获取指定位置的元素。还可以使用迭代器来遍历vector中的元素。
相关问题
stl容器中vector
vector是C++标准库中的一个动态数组容器,提供了一种方便的方式来存储和操作一系列的元素。vector可以自动调整大小,可以在尾部快速插入和删除元素,并且支持随机访问。
以下是vector的一些重要特点和用法:
1. 定义和初始化vector:
可以使用以下方式定义和初始化一个vector:
```cpp
std::vector<int> vec; // 定义一个空的vector
std::vector<int> vec1(5); // 定义一个包含5个默认初始化元素的vector
std::vector<int> vec2(5, 10); // 定义一个包含5个值为10的元素的vector
std::vector<int> vec3 = {1, 2, 3, 4, 5}; // 使用初始化列表初始化vector
```
2. 访问和修改元素:
可以使用下标运算符[]或at()函数来访问和修改vector中的元素。例如:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
int firstElement = vec; // 访问第一个元素
int secondElement = vec.at(1); // 访问第二个元素
vec = 10; // 修改第三个元素的值为10
```
3. 插入和删除元素:
可以使用push_back()函数在vector的尾部插入一个元素,使用pop_back()函数删除尾部的元素。也可以使用insert()函数在指定位置插入元素,使用erase()函数删除指定位置的元素。例如:
```cpp
std::vector<int> vec = {1, 2, 3};
vec.push_back(4); // 在尾部插入元素4
vec.pop_back(); // 删除尾部的元素
vec.insert(vec.begin() + 1, 10); // 在第二个位置插入元素10
vec.erase(vec.begin() + 2); // 删除第三个位置的元素
```
4. 获取vector的大小和容量:
可以使用size()函数获取vector中元素的个数,使用capacity()函数获取vector的容量(即当前分配的内存空间大小)。例如:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
int size = vec.size(); // 获取元素个数,结果为5
int capacity = vec.capacity(); // 获取容量,结果可能大于等于5
```
5. 遍历vector:
可以使用迭代器或范围for循环来遍历vector中的元素。例如:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
for (auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
// 或者使用范围for循环
for (int num : vec) {
std::cout << num << " ";
}
```
这些只是vector的一些基本用法,还有很多其他的函数和特性可以探索和使用。你可以参考C++标准库的文档或其他相关资料来深入了解vector的更多用法和细节。
STL中的vector
STL中的vector是一种动态数组,可以根据需要自动调整大小。它是STL提供的标准容器之一,被广泛应用于C++编程中。vector可以看作是一个长度可以动态改变的数组,与数组相比,它具有更多的功能和更方便的使用方法。我们可以通过使用vector的迭代器iterator、调用vector对象的begin()和end()函数,实现对于vector中数据的遍历。同时,利用auto关键字也可以方便地遍历vector中的元素。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)