vector 的使用
向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。
#include < vector>
using namespace std;
int main(){
vector vector_tem;
// push_back 向量尾部增加一个元素X
vector_tem.push_back(10);
vector_tem.push_back(1);
vector_tem.push_back(3);
// 迭代输出
printf("vector_tem size : %lu ",vector_tem.size());
for(uint8_t i = 0; i 0){
// 获取首元素的引用 front
if(vector_tem.front() == 10){
// 删除指定的元素 begin是获取首元素的指针地址
vector_tem.erase(vector_tem.begin());
}
}
}
其他常用方法
增加函数
iterator insert(iterator it,const T& x):向量中迭代器指向元素前增加一个元素x
删除函数
iterator erase(iterator first,iterator last):删除向量中[first,last)中元素
void pop_back():删除向量中最后一个元素
void clear():清空向量中所有元素
遍历函数
reference at(int pos):返回pos位置元素的引用
reference front():返回首元素的引用
reference back():返回尾元素的引用
iterator begin():返回向量头指针,指向第一个元素
iterator end():返回向量尾指针,指向向量最后一个元素的下一个位置
reverse_iterator rbegin():反向迭代器,指向最后一个元素
reverse_iterator rend():反向迭代器,指向第一个元素之前的位置
引用 https://www.runoob.com/w3cnote/cpp-vector-container-analysis.html
map 的使用
map 是 STL 的一个关联容器,它提供一对一的hash
第一个称为关键字(key),每个关键字只能在map中出现一次;
第二个称为该关键字的值(value);
pair类型
在介绍关联容器操作之前,先了解一下 pair 的标准库类型。pair类型是在有文件 utility 中定义的,pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如STL中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first ,second 因为是使用struct不是class,所以可以直接使用pair的成员变量。
make_pair(v1, v2) : 以v1和v2值创建的一个新的pair对象
除此之外,pair对象还有一些方法,如取出pair对象中的每一个成员的值:
p.first 返回p的名为 first 的(公有)数据成员
p.second 返回p的名为second的(公有)数据成员
#include
#include
#include
#include
using namespace std;
int main(){
pair p1(0, "Hello");
printf("%d, %s\n", p1.first, p1.second.c_str());
pair p2 = make_pair(1, "World");
printf("%d, %s\n", p2.first, p2.second.c_str());
return 0;
}
map 基本操作
map是键-值对的组合,即map的元素是pair,其有以下的一些定义的方法:
#include
#include
其他函数
count(k) 查找关键字k出现的次数
find(k) 查找元素
if (mp.count(0)) {
cout << "yes!" << endl;
} else {
cout << "no!" << endl;
}
map::iterator it_find;
it_find = mp.find(0);
if (it_find != mp.end()) {
it_find->second = 20;
} else {
cout << "no!" << endl;
}
empty() 容器是否为空
clear() 清空容器
size() 容器的大小
begin() 返回指向map头部的迭代器
end() 返回指向map末尾的迭代器
rbegin() 返回一个指向map尾部的逆向迭代器
rend() 返回一个指向map头部的逆向迭代器