auto
多用auto
for(auto i:sth)中的sth可以是有迭代器的东西,i就是sth中的每一个元素
比较的属性
less, less_equal, greater(从大到小), greater_equal是头文件functional中的
int bar[]={15,10,20};
std::sort (bar, bar+3, std::less()); // 10 15 20从小到大
string类
//构造函数
string strs //生成空字符串
string s(str) //生成字符串str的复制品
@string s(str, stridx) //将字符串str中始于stridx的部分作为构造函数的初值
@string s(str, strbegin, strlen) //将字符串str中始于strbegin、长度为strlen的部分作为字符串初值
string s(cstr) //以C_string类型cstr作为字符串s的初值
string s(cstr,char_len) //以C_string类型cstr的前char_len个字符串作为字符串s的初值
strings(num, c) //生成一个字符串,包含num个c字符
@strings(strs, beg, end) //以区间[beg, end](二者都是迭代器)内的字符作为字符串s的初值
以上@行的方法在各函数都可应用
//c_str()
存在从 const char * 到 string 的隐式转换,却不存在从 string到C_string 的自动转换. string.c_str() 返回 C_string。
//长度
length()或者size()返回字符串长度
//比较
s.compare (pos,n, s2,pos2,n2)//用s-s2,返回1,-1,0
直接用比较运算符可以比较字典序
//修改和替换
str.assign(str1)//用str1给str赋值
erase()
s.swap(s1)
insert()
append()
replace()
//输入
getline(cin,s)第三个参数可以指定终止符
//查找
find()从前,rfind()从后
pair类(头文件utility)
//构造
auto my_pair=make_pair(a,b)
pair<类型,类型> my_pair(a,b)
//访问
my_pair.first或者second
//比较
先比first再比second,按字典序
//交换
swap()函数
map类(默认排序是less)
//构造
每个pair可以用{a,b}也可以用make_pair(a,b)
//插入
insert(pair类对象)
count(str)//计算str在各个key中出现的次数
emplace(a,b)//把{a,b}作为pair插入
//查找
find()//返回迭代器类型
//长度
size()
//访问
直接用下标通过key访问value
//删除
erase(key)//删除key对应的pair