c++vector常用操作及函数

std::vector 是 C++ 标准模板库(STL)中的一个非常有用的容器,它提供了动态数组的功能。下面是一些 std::vector 的常用操作和函数:

1. 构造函数和初始化

std::vector<T> v;:默认构造函数,创建一个空的 vector。

std::vector<T> v(n);:创建一个包含 n 个默认初始化元素的 vector。

std::vector<T> v(n, val);:创建一个包含 n 个值为 val 的元素的 vector。

std::vector<T> v(const std::vector<T>& other);:复制构造函数。

2. 容量操作

v.size();:返回 vector 中元素的数量。

v.empty();:如果 vector 为空,则返回 true。

v.max_size();:返回 vector 可能包含的最大元素数量(这通常是一个非常大的数)。

v.resize(n);:改变 vector 的大小以包含 n 个元素。如果 n 大于当前大小,则添加额外的默认初始化元素;如果 n 小于当前大小,则删除多余的元素。

v.resize(n, val);:与上面的 resize 类似,但新添加的元素将初始化为 val。

v.capacity();:返回 vector 当前分配的空间能够容纳的元素数量。这通常大于或等于 vector 的大小,以便在添加元素时避免频繁的内存分配。

v.reserve(n);:请求 vector 至少保留容纳 n 个元素的空间。这可以避免在添加元素时频繁地重新分配内存,从而提高效率。

3. 元素访问

v[n];:通过索引访问元素(注意,索引从 0 开始,并且必须在 [0, size()) 范围内)。

v.at(n);:通过索引访问元素,但会进行边界检查。如果索引越界,将抛出 std::out_of_range 异常。

v.front();:返回对 vector 中第一个元素的引用。

v.back();:返回对 vector 中最后一个元素的引用。

4. 修改器

v.push_back(val);:在 vector 的末尾添加一个元素。

v.pop_back();:删除 vector 的最后一个元素。

v.insert(it, val);:在迭代器 it 指向的位置插入一个值为 val 的元素。

v.insert(it, n, val);:在迭代器 it 指向的位置插入 n 个值为 val 的元素。

v.insert(it, first, last);:在迭代器 it 指向的位置插入另一个容器(如另一个 vector、list 等)中从 first 到 last(不包括 last)的元素。

v.erase(it);:删除迭代器 it 指向的元素。

v.erase(first, last);:删除迭代器范围 [first, last) 内的所有元素。

v.clear();:删除 vector 中的所有元素。

v.assign(n, val);:将 vector 的内容替换为 n 个值为 val 的元素。

v.assign(first, last);:将 vector 的内容替换为从迭代器 first 到 last(不包括 last)的元素。

5. 迭代器

v.begin();:返回指向 vector 第一个元素的迭代器。

v.end();:返回指向 vector 末尾之后一个位置的迭代器(这通常用作表示 vector 结束的标记)。

v.rbegin();:返回指向 vector 最后一个元素的反向迭代器。

v.rend();:返回指向 vector 第一个元素之前的反向迭代器(这通常用作表示 vector 反向结束的标记)。

 

这些只是 std::vector 的一些常用操作和函数,它还有更多高级用法。

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值