C++ stl容器中的【vector】

 什么是vector

在 C++ 中,vector 是一个标准库容器,可用于存储和操作动态大小的数组。它包含在头文件 <vector> 中,并提供了以下常用方法:

  1. push_back(value):在 vector 尾部添加一个元素。
  2. pop_back():删除 vector 尾部的元素。
  3. size():返回 vector 中元素的数量。
  4. empty():如果 vector 中没有元素,则返回 true。
  5. clear():从 vector 中删除所有元素。
  6. at(index):返回 vector 中给定索引处的元素。
  7. front():返回 vector 中第一个元素。
  8. back():返回 vector 中最后一个元素。
  9. erase(begin, end):删除指定范围内的元素。
  10. insert(position, value):在指定位置插入一个元素。

例如,下面是一个使用 vector 存储整数的示例:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> v = {1, 2, 3};
    v.push_back(4);
    for (int i : v) {
        std::cout << i << " ";
    }
    std::cout << std::endl;
    return 0;
}

上述代码将输出:1 2 3 4。

vector的构造函数

//空构造
std::vector<int> first;                                // empty vector of ints
//创建4个整型空间的大小,并且用100初始化
std::vector<int> second(4, 100);                       // four ints with value 100
//用迭代器构造
std::vector<int> third(second.begin(), second.end());  // iterating through second
//拷贝构造
std::vector<int> fourth(third);                       // a copy of third

迭代器

        vector有两个版本的迭代器,一个是正向迭代器,一个是反向迭代器,他们的起始位置大概如上图所示。两个版本的迭代器使用方式一致

        迭代器本质是对应类型的指针,如果vector<int>,那么迭代器本质就是一个int*指针,并且对vector一定要有一个整体认知,它就是一个动态数组。

        模拟实现vector,有兴趣的小伙伴可以看看。

        cplusplus: c++学习的代码仓库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vectorC++标准库的一个动态数组容器,提供了一种方便的方式来存储和操作一系列的元素。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的更多用法和细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值