• std::vector是一个封装动态数组的序列容器

  • std::pmr::vector是一个使用多态分配器的别名模板。

1、成员函数

  • vector::vector:构造函数,用于构造向量。

  • vector::~vector:析构函数,对象撤销回收时调用。

  • vector::operator:分配值到容器中。

  • vector::assign:分配值到容器中。

  • vector::get allocator:返回相关的分配器。

2、元素访问

  • vector::at:访问边界检查的指定元素。

  • vector::operator[]:访问具体元素。

  • vector::front:返回第一个元素。

  • vector::back:返回最后一个元素。

  • vector::data:直接访问底层数组。

3、迭代器iterator

  • vector::begin/cbegin:将迭代器返回到开头。

  • vector::end/cend:将迭代器返回到末尾。

  • vector::rbegin/crbegin:将反向迭代器返回到开头。

  • vector::rend/crend:将反向迭代器返回到末尾。

4、容量capacity

  • vector::empty:检查容器是否为空。

-vector::size:返回元素的数量。

-vector::max_size:返回最大的可能的元素数量。

  • vector::reserve:反向存储。

  • vector::capacity:返回当前分配存储中可以保留的元素数量。

  • vector::shrink_to_fit:通过释放未使用的内存,减少内存的使用。

5、修改函数

  • vector::clean:清除内容。

  • vector::insert:插入元素。

  • vector::empalce:就地构造元素。

  • vector::erase:擦除元素。

  • vector::push_back:添加一个元素到末尾。

  • vector::emplace_back:在末尾就地构造一个元素。

  • vector::pop_back:移除最后一个元素。

  • vector::resize:改变元素存储的数量。

  • vector::swap:交换内容。

举例:


#include <vector>
#include <string>
#include <iostream> template<typename T>
std::ostream& operator<<(std::ostream& s, const std::vector<T>& v) {
s.put('[');
char comma[3] = {'\0', ' ', '\0'};
for(const auto& e : v) {
s << comma << e;
comma[0] = ',';
}
return s << ']';
} int main() {
// 初始化符号
std::vector<std::string> words1 {"the", "frogurt", "is", "also", "cursed"};
std::cout << "words1: " << words1 << "\n"; // words2 == words1
std::vector<std::string> words2(words1.begin(), words1.end());
std::cout << "words2: " << words2 << "\n"; // words3 == words1
std::vector<std::string> words3(words1);
std::cout << "words3: " << words3 << "\n"; // words4 is {"Mo", "Mo", "Mo", "Mo", "Mo"}
std::vector<std::string> words4(5, "Mo");
std::cout << "words4: " << words4 << "\n";
}

C++之标准库vector的更多相关文章

  1. 把《c++ primer》读薄(3-2 标准库vector容器+迭代器初探)

    督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 ...

  2. c/c++ 标准库 vector

    c/c++ 标准库 vector 标准库 vector的小例子 test1~test7 #include <iostream> #include <vector> using ...

  3. C++标准库vector类型的使用和操作总结

    vector是一种类型对象的集合,它是一种顺序容器,容器中的所有对象必须都是同一种类型.想了解顺序容器的更多内容:C++顺序容器知识总结.vector的对象是可以动态生长的,这说明它在初始化时可以不用 ...

  4. C++ Primer 有感(标准库vector及迭代器)

    vector是同一种对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的类存.引入头文件 #include<vector> 1.vecto ...

  5. C++标准库vector以及迭代器

    今天看C++的书,出现了一个新的概念,容器vector以及容器迭代器. vector是同一种对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的类存. ...

  6. C++标准库vector及迭代器

    vector是同一种对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的类存.引入头文件 #include<vector> 1.vecto ...

  7. C++标准库vector类型详解

    Vector简介 vector是定义在C++标准模板库,它是一个多功能.能够操作多种数据结构和算法的模板类(关于模板类我们后面会介绍,如何创建自己的模板类).vector是一个容器,能够像容器一样存放 ...

  8. c++标准库vector&list使用练习

    /* vector顺序存储,随机访问快 list链表存储,插入删除快 deque占用内存多,兼具两者优点 注意: 1.vector严格顺序存储 2.list的迭代器只能做++或--运算,要一次移动多个 ...

  9. C++标准库 vector排序

    前天要做一个对C++ STL的vector容器做一个排序操作,之前一直把vector当做一个容量可自动变化的数组,是的,数组,所以打算按照对数组进行排序的方法:用快速排序或是冒泡排序等算法自己写一个排 ...

随机推荐

  1. winrar目录穿越漏洞

    地址: 参考: https://research.checkpoint.com/extracting-code-execution-from-winrar/ POC: https://github.c ...

  2. MVC 使用缓存

    public AController() { ViewBag[); } private List<BlogsClass> GetClass(int parentId) { List< ...

  3. MAVEN简介之——pom.xml

    maven构建的生命周期 maven是围绕着构建生命周期这个核心概念为基础的.maven里有3个内嵌的构建生命周期,default,clean和site. default是处理你项目部署的:clean ...

  4. react组件实现扩展知识

    react-redux redux-thunk 实现异步action, ajax,定时器 redux-gen 利用生成器,实现middleware react-router-redux react-r ...

  5. ORA-01589解决

    错误展现如下: sqlplus /nolog SQL> conne /as sysdbaConnected.SQL> shutdown abortORACLE instance shut ...

  6. ts --基础类型

    声明js的基本类型1.数字let a: number = 2; 2.字符串let aa: string = "22" 3.数组 (1) 数组元素: let b: number[] ...

  7. 配置React Native 安卓开发环境

    配置主要分为以下几步: 安装node.js 安装AndroidStudio 安装React Native命令行工具 搭建React Native版本的Hello World,修改代码查看效果 第一步 ...

  8. 对比剖析Swarm Kubernetes Marathon编排引擎

    Docker Native Orchestration 基本结构 Docker Engine 1.12 集成了原生的编排引擎,用以替换了之前独立的Docker Swarm项目.Docker原生集群(S ...

  9. 用Flow编写更好的js代码

    关于本文: 原文地址 翻译地址 译者:野草 本文发表于前端早读课[第897期] 你是否经常在debug那些简单可避免的bug?可能你给函数传参的时候搞错了参数的顺序,或者本来应该传个Number类型的 ...

  10. List、Set、Map的区别

    (图一) 1.面试题:你说说collection里面有什么子类. (其实面试的时候听到这个问题的时候,你要知道,面试官是想考察List,Set) 正如图一,list和set是实现了collection ...