上一篇:STL容器之set、map、unordered_set、unordered_map
1、字符串string
=、assign() | 赋予新值 |
swap() | 交换两个string的内容 |
+=、append()、push_back() | 添加字符。 str1.append(str2,1,3)表示将str2的从索引1开始的三个字符附加到str1; str1.append("nico",5)表示将添加字符串数组:'n' 'i' 'c' 'o' '\0'; str1.append(5, 'x') 表示添加5个x; |
insert(index,str) | 插入字符 |
erase()、pop_back() | 删除字符 str.erase(13):删除第13个字符 str.erase(7, 5):删除第七个位置后的5个字符 |
clear() | 移除全部字符使之为空 |
resize() | 改变字符数量 |
replace(index,num,str2) | 替换字符,将str中重index开始的num个字符替换为str2 |
+ | 串接string |
==,!=,<=,>=,compare() | 比较string,str1.compare(str2)中,返回0表示相等、小于0表示小于,大于0表示大于; str1.compare(0, 2,str2,2, 2)表示比较str1的从0开始的2个字符和str2的从2开始的两个字符; str1.compare(1,2,“bcx”,2)表示比较str1的从1开始的两个字符和“bcx”中的“bc”; |
empty() | 判断字符是否为空 |
size()、length() | 返回字符的数量 |
max_size() | 返回字符的最大可能数 |
capacity() | 返回重分配前的字符容量 |
reserve() | 保留一定容量内存以容纳一定数量的字符 |
shringk_to_fit() | 缩减字符使符合当前字符量 |
[]、at | 访问某个单一字符 |
front()、back() | 访问第一个、最末字符 |
>>,getline() | 从一个stream读取某值 |
<< | 将某值写入stream |
stoi()、stol()、stoll() | 将string转为带正负号的整数(int、long、long long),转换时会跳过前导的任何空白字符 stoi(str,idxRet,base=10):第二个参数用于保存字符中未被处理的第一个字符索引,也就是字符串中的第一个无效字符,如果不关心则设置nullptr,第三个参数是数值的基数。 |
stoul()、stoull() | 将string转为不带正负号的整数(unsigned int、unsigned long long) |
stof()、stod()、stold() | 将string转为浮点数(float、double、long double) |
to_string(val)、to_wstring(val) | 将整数、浮点数转为string |
const char c = 'a'; string s(1,c); --------------------- string s1; --------------------- s1.push_back(c); stringstream ss; --------------------- ss << c; string str2 = ss.str(); | 将char转为string的三种方法: 1.使用 string 的构造函数; 2.声明string 后将char push_back;
3.使用stringstream;
|
copy(buffer,num,beg_index) | 将string复制为一个字符数组 |
data()、c_str() | 将string的内容以C-string的内容返回 |
substr() | 返回某个子字符串: str.substr(11):返回str的11个位置后的所有子串 str.substr(5, 6) :返回str的第5个位置后的6个字符 |
find()
rfind() find_first_of() find_last_of() find_first_not_of() find_last_not_of() | 查找第一个与val相等的字符串,返回索引; str1.find(str2,10):表示从str1的第10个位置开始查找 查找最后一个与val相等的字符串,返回索引; 查找第一个与val中的某值相等的字符串; 查找最后一个与val中的某值相等的字符串; 查找第一个与val中的任何值都不相等的字符串; 查找最后一个与val中的任何值都不相等的字符串; |
begin()、end() | 提供正常的iterator支持 |
cbegin()、cend() | 提供const iterator支持 |
rbegin()、rend() | 提供reverse iterator支持 |
crbegin()、crend() | 提供const reverse iterator支持 |
get_allocator() | 返回分配器 |
2、栈stack
stack<string> stack | 初始化一个空的栈 |
stack.push(val) | 将一个元素放入stack之内 |
stack.top() | 返回stack的下一个元素,但并不移除它 |
stack.pop() | 从stack中移除元素,但并不返回它 |
3、队列queue
queue<string> queue | 初始化一个空队列 |
queue.push(val) | 将一个元素放入队列内 |
queue.front() | 返回队列的下一个元素(也就是第一个被插入的元素),但不移除它 |
queue.back() | 返回队列的最后一个元素(也就是最后一个被插入的元素),但不移除它 |
queue.pop() | 从队列中移除下一个元素,但并不返回它 |
4、bit集bitset
bitset<n> b; bitset<n> b(u); bitset<n> b(s); bitset<n> b(s, pos, n); | b有n位,每位都为0 b是unsigned long型u的一个副本 b是string对象s中含有的位串的副本 b是s中从位置pos开始的n个位的副本 |
b.any( ) | 是否存在置为1的二进制位(和none()相反) |
b.none( ) | 是否不存在置为1的二进制位,即是否全部为0?和any()相反. |
b.count( ) | 二进制位为1的个数. |
b.size( ) | 二进制位的个数 |
b.flip() | 把所有二进制位逐位取反 |
b.flip(pos) | 把在pos处的二进制位取反 |
b[pos] | 获取在pos处的二进制位 |
b.set() | 把所有二进制位都置为1 |
b.set(pos) | 把在pos处的二进制位置为1 |
b.reset() | 把所有二进制位都置为0 |
b.reset(pos) | 把在pos处的二进制位置为0 |
b.test(pos) | 在pos处的二进制位是否为1? |
b.to_ulong( ) | 用同样的二进制位返回一个unsigned long值 |
b.to_ullong() | 用同样的二进制位返回一个unsigned long long值 |
b.to_string () | 返回对应的字符串. |
参考:《C++标准》