C++之标准库vector

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的更多相关文章
- 把《c++ primer》读薄(3-2 标准库vector容器+迭代器初探)
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 ...
- c/c++ 标准库 vector
c/c++ 标准库 vector 标准库 vector的小例子 test1~test7 #include <iostream> #include <vector> using ...
- C++标准库vector类型的使用和操作总结
vector是一种类型对象的集合,它是一种顺序容器,容器中的所有对象必须都是同一种类型.想了解顺序容器的更多内容:C++顺序容器知识总结.vector的对象是可以动态生长的,这说明它在初始化时可以不用 ...
- C++ Primer 有感(标准库vector及迭代器)
vector是同一种对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的类存.引入头文件 #include<vector> 1.vecto ...
- C++标准库vector以及迭代器
今天看C++的书,出现了一个新的概念,容器vector以及容器迭代器. vector是同一种对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的类存. ...
- C++标准库vector及迭代器
vector是同一种对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的类存.引入头文件 #include<vector> 1.vecto ...
- C++标准库vector类型详解
Vector简介 vector是定义在C++标准模板库,它是一个多功能.能够操作多种数据结构和算法的模板类(关于模板类我们后面会介绍,如何创建自己的模板类).vector是一个容器,能够像容器一样存放 ...
- c++标准库vector&list使用练习
/* vector顺序存储,随机访问快 list链表存储,插入删除快 deque占用内存多,兼具两者优点 注意: 1.vector严格顺序存储 2.list的迭代器只能做++或--运算,要一次移动多个 ...
- C++标准库 vector排序
前天要做一个对C++ STL的vector容器做一个排序操作,之前一直把vector当做一个容量可自动变化的数组,是的,数组,所以打算按照对数组进行排序的方法:用快速排序或是冒泡排序等算法自己写一个排 ...
随机推荐
- 迷宫问题 (bfs广度优先搜索记录路径)
问题描述: 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, ...
- 【Codeforces Round】 #432 (Div. 2) 题解
Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) A. Arpa and a research in Mexi ...
- IP通信基础学习第九周
H3C单臂路由: 交换机的所有接口是在同一个广播域 用vlan进行隔离广播域 创建vlan,display可查看是否创建成功 进入接口是Interface,配置接口Port 先测试相同的vlan ,可 ...
- Mask rcn nanchor部分理解
Anchors Mask 生成锚框本质与SSD一样中心点个数等于特征层像素数框体生成围绕中心点Bbox的坐标是要归一化到0~1之间的,都是相对于输入图片的大小.基本生成方式:H乘np.sqrt(anc ...
- mySQL简单操作(三)
1.事务 (1)ACID 原子性(不可分割性)automicity 一致性 consistency 隔离性 isolation 持久性 durability (2)事务控制语句 begin/start ...
- ametuer technology
1. eclipse build output/ .s37 not big enough (about 1.23M) Brose Setting: Build command must be BUIL ...
- Navicat Premium for Mac完美破解
前因:系统升级Mojave10.14.4,没升级成功,也可能是误删了系统下的private文件夹下的东西,导致内核崩溃. 自己鼓捣了下,恢复系统不成功,去苹果售后问了下,重装系统399,保留资料 ...
- ORA-00338
dg环境从库报错:ORA-00338: log 5 of thread 1 is more recent than control fileORA-00312: online log 5 thread ...
- Android系统修改之Notification布局修改(一)
源码基于Android4.4 相关布局文件的位置: frameworks/base/core/res目录下: 1. notification_template_base.xml 2. notifica ...
- Maven打war包命令
https://jingyan.baidu.com/article/295430f1e7c4b30c7e005095.html clean compile package