C++标准模板库(STL)-verctor介绍

C++标准模板库(STL)中的vector是一个动态数组,它可以自动管理内存,并提供了一些方便的方法来访问、修改和操作元素。

vector的基本操作:

  1. 创建一个空的vector:
cpp 复制代码
#include <vector>

std::vector<int> v;
  1. 在vector中添加元素:
cpp 复制代码
v.push_back(1); // 在vector末尾添加一个元素
v.push_back(2); 
v.push_back(3); 
  1. 访问vector中的元素:
cpp 复制代码
int first_element = v[0]; // 访问第一个元素
  1. 修改vector中的元素:
cpp 复制代码
v[0] = 10; // 修改第一个元素
  1. 使用迭代器遍历vector中的元素:
cpp 复制代码
for (std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
    std::cout << *it << " "; // 输出每个元素的值
}
  1. 在vector中插入元素:
cpp 复制代码
v.insert(v.begin() + 1, 4); // 在第二个位置插入元素4
  1. 从vector中删除元素:
cpp 复制代码
v.erase(v.begin() + 1); // 删除第二个元素
  1. 检查vector的大小:
cpp 复制代码
int size = v.size(); // 获取vector的大小

vector的特性

  1. 动态大小:vector可以动态地调整其大小,可以在运行时根据需要添加或删除元素。与静态数组不同,vector不需要在定义时指定固定的元素个数。
  2. 连续存储:vector以连续的内存块存储元素。这样的存储方式使得访问元素变得高效,可以通过索引快速访问和修改任意位置的元素。
  3. 自动扩展和收缩:vector可以根据需要自动扩展以容纳更多的元素,并在需要时自动收缩以节省内存。这样,您无需手动管理内存,vector会自动处理。
  4. 插入和删除:vector提供了多种方法来插入和删除元素。可以在任意位置插入元素,也可以从任意位置删除元素,包括头部和尾部。
  5. 随机访问:vector支持快速的随机访问。可以使用索引来直接访问任意位置的元素,时间复杂度为O(1)。
  6. 迭代器支持:vector提供迭代器来遍历容器中的元素。迭代器可以用于读取和修改容器中的元素,支持正向和反向迭代。
  7. 元素连续存储:就像C/C++中的数组一样,具有随机访问的特性,寻址极快。

应用举例

cpp 复制代码
#include <iostream>
#include <vector>

int main() {
    // 创建一个空的vector
    std::vector<int> v;

    // 在vector中添加元素
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);

    // 访问vector中的元素
    std::cout << "第一个元素是:" << v[0] << std::endl;

    // 修改vector中的元素
    v[0] = 10;
    std::cout << "修改后的第一个元素是:" << v[0] << std::endl;

    // 使用迭代器遍历vector中的元素
    std::cout << "Vector中的元素是:";
    for (std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    // 在vector中插入元素
    v.insert(v.begin() + 1, 4);
    std::cout << "插入元素后的Vector中的元素是:";
    for (std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    // 从vector中删除元素
    v.erase(v.begin() + 1);
    std::cout << "删除元素后的Vector中的元素是:";
    for (std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    // 检查vector的大小
    int size = v.size();
    std::cout << "Vector的大小是:" << size << std::endl;

    return 0;
}
相关推荐
牛油果子哥q6 分钟前
【C++ STL string 】C++ STL string 终极精讲:底层原理、内存机制、全套API、深浅拷贝、易错坑点与工程实战规范
数据库·c++
KaMeidebaby7 分钟前
卡梅德生物技术快报|纯化重组蛋白实操详解
人工智能·python·tcp/ip·算法·机器学习
Cloud_Shy6188 分钟前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法
天佑木枫34 分钟前
15天Python入门系列 · 序
开发语言·python
手写码匠1 小时前
从零实现 Prompt 工程引擎:结构化提示、自动优化与多轮自省体系
人工智能·深度学习·算法·aigc
无限码力1 小时前
阿里算法岗 0530笔试真题 - 多约束条件下的元素匹配统计
算法·阿里笔试真题·阿里机试真题·阿里算法岗笔试
lqqjuly1 小时前
MLA — 多头潜在注意力深度解析
深度学习·神经网络·算法
宋拾壹2 小时前
同时添加多个类目
android·开发语言·javascript
吴可可1232 小时前
SolidWorks草图转三维DWG技巧
算法
凡人叶枫2 小时前
Effective C++ 条款04:确定对象被使用前已先被初始化
java·linux·开发语言·c++·嵌入式开发