std::vector 简介

std::vector 是 C++ 标准库提供的动态数组容器,具有自动管理内存、随机访问、动态增长等特性。它可以在不手动管理内存的情况下存储和操作一组元素。

基本用法

首先,需要包含头文件 <vector>:

创建和初始化

可以通过多种方式创建和初始化 vector:

#include <vector>
#include <iostream>

int main() {
    // 默认构造函数,创建一个空的 vector
    std::vector<int> vec1;

    // 使用初始大小和初始值
    std::vector<int> vec2(10, 5); // 10 个元素,每个元素都是 5

    // 使用初始化列表
    std::vector<int> vec3 = {1, 2, 3, 4, 5};

    // 使用迭代器范围
    int arr[] = {1, 2, 3, 4, 5};
    std::vector<int> vec4(arr, arr + 5);

    return 0;
}

访问元素

可以使用下标运算符 [] 或成员函数 at() 访问 vector 中的元素:

std::vector<int> vec = {1, 2, 3, 4, 5};

// 使用下标运算符
std::cout << vec[0] << std::endl; // 输出 1

// 使用 at() 函数
std::cout << vec.at(1) << std::endl; // 输出 2

修改元素

可以使用下标运算符 [] 或成员函数 at() 修改 vector 中的元素:

vec[0] = 10;
vec.at(1) = 20;

添加和删除元素

std::vector 提供了多种方法来添加和删除元素:

std::vector<int> vec;

// 添加元素到末尾
vec.push_back(1);
vec.push_back(2);

// 插入元素到指定位置
vec.insert(vec.begin(), 0); // 在开头插入 0

// 删除最后一个元素
vec.pop_back();

// 删除指定位置的元素
vec.erase(vec.begin()); // 删除第一个元素

// 清空 vector
vec.clear();

遍历元素

可以使用迭代器或范围循环遍历 vector 中的元素

std::vector<int> vec = {1, 2, 3, 4, 5};

// 使用迭代器
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
    std::cout << *it << " ";
}
std::cout << std::endl;

// 使用范围循环 (C++11 及以上)
for (int val : vec) {
    std::cout << val << " ";
}
std::cout << std::endl;

注意事项

  1. 迭代器失效问题:在修改 vector 结构(如插入、删除元素)时,所有指向 vector 元素的迭代器、指针和引用可能会失效,需要特别小心。
  2. 性能考虑vector 在末尾添加或删除元素的时间复杂度是 O(1),但在中间插入或删除元素的时间复杂度是 O(n)。
  3. 容量管理vector 的容量管理可以通过 reserve()shrink_to_fit() 等函数进行优化,以减少内存重新分配的开销。
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值