vector, 变长数组,倍增的思想
size() //返回元素个数
empty() //返回是否为空
clear() //清空
front()/back()//开头/结尾
push_back()/pop_back()//输入/删除首个
begin()/end()
迭代器 = find(a.begin(), a.end(), x);
string,字符串
size()/length() 返回字符串长度
empty()//是否为空(true/false)
clear()//清空
substr(起始下标,(子串长度))// 返回子串
c_str() //返回字符串所在字符数组的起始地址
// 获取一行字符串(包含空格)
string s;
getline(cin, s);
// 判断字符是否是数字
char x;
// 方法1
if(x >= '0' && x <= '9') ...
// 方法2
if(isdigit(x)) ...
//单个字符变小写
x = tolower(x); // char x;
// 变大写
x = toupper(x); // char x;
// 把字符串变小写
string a;
for(int i=0; i<a.size(); i++){
a[i] = tolower(a[i]); //单个字符变小写
}
queue, 队列
size()//长度
empty()//是否为空
push() 向队尾插入一个元素
front() 返回队头元素
back() 返回队尾元素
pop() 弹出队头元素
set, map, multiset, multimap, 基于平衡二叉树(红黑树),动态维护有序序列
size()//长度
empty()//是否为空
clear()//清除
begin()/end()//前/后
++, -- //返回前驱和后继,时间复杂度 O(logn)
set/multiset
insert() //插入一个数
find() //查找一个数
count() 返回某一个数的个数
erase()/*
(1) 输入是一个数x,删除所有x O(k + logn)
(2) 输入一个迭代器,删除这个迭代器*/
lower_bound()/upper_bound()
lower_bound(x) 返回大于等于x的最小的数的迭代器
upper_bound(x) 返回大于x的最小的数的迭代器
map/multimap
insert() 插入的数是一个pair
erase() 输入的参数是pair或者迭代器
find()//查找
unordered_set, unordered_map, unordered_multiset, unordered_multimap, 哈希表
和上面类似,增删改查的时间复杂度是 O(1)
不支持 lower_bound()/upper_bound(), 迭代器的++,--
如果有疑问/补充评论区说!!!
不一定可以及时回复,请耐心等待!!!
可参考信奥一本通的附页
注:次文章来自我的ACGO文章C++ STL +字符串+字符函数+队列-ACGO题库|信息学竞赛OJ刷题平台
标签:返回,迭代,STL,bound,back,队列,为空,字符串 From: https://blog.csdn.net/2403_86855185/article/details/141503886