总结
第一梯队:vector string
vector:主要就是用push_back这个方法,将元素添加到向量末尾,也会用到size,erase,begin,end这四个方法,大多数时间会用a[i]这种形式访问。看着和普通数组没太多区别,但是节省了分配内存那些困扰。
string:这个就超级常用,常用方法:size,length,empty这些都是和长度相关的。substr这个方法可以是很好用了,有时候处理字符串copy过来过去很麻烦,这个方法解决了很多问题。find,rfind方法查找子字符串。replace替换字符串,append在末尾添加字符串,insert在指定位置添加字符串。erase,clear和字符串清除有关系,不是很常用。c_str转换成C风格的字符串,这个又很常见了。
------------------------------------------------------------------------
第二梯队:stack,queue,proirity_queue,set,map
stack:push,pop,top,empty,size都是很常见的方法,学数据结构的时候都知道这些
queue:front,back返回队首队尾的元素的引用。push队尾添加一个元素,pop移处队尾元素。empty,size就不解释了
set:元组,就是不会重复元素。insert,erase,find,size,empty都是常见的用法
map:键值对,也是很常见的数据结构具体要这样定义
std::map<std::string, int> employees;
employees["Alice"] = 30;
------------------------------------------------------------------------
第三梯队:priority_queue,sort
priority_queue:优先队列,高级的数据结构,定义方法如下
struct compare {
bool operator()(int a, int b) {
return a > b; // 定义最小堆
}
};
// 创建一个自定义类型的优先队列,使用最小堆
std::priority_queue<int, std::vector<int>, compare> pq_min;
sort:排序,最常用的方法如下
bool compare(int a, int b) {
return a > b; // 降序
}
std::vector<int> vec = {5, 3, 8, 6, 2};
// 降序排序
std::sort(vec.begin(), vec.end(), compare);
第四梯队:
pair
#include <utility>
std::pair<Type1, Type2> myPair;
pair 中有两个公有成员变量:first:存储第一个值。second:存储第二个值。