1. set的使用:(可用在bfs和dfs中,用来去重)
当想要删除指定数组(int double)元素时
(1) 若数字序列是无重复的,则用set;
set<int a>;
a.erase(x); //x是想要删除的元素
(2)若数字序列是重复的,则用multiset;
multiset<int a>; //a里有多个值为x的元素
a.erase(x); //x是想要删除的元素,会将全部值为x的元素全部删除
set介绍:会自动排序,且无重复元素,可用于set<string> ,set<int>;
(3)
a.count(x) 返回值为0或1,检测a所存储的序列中是否存在值为x的元素
a.find(x) 若不存在值为x的元素,则为a.end();
用法:if(a.find(x)!=a.end()) cout << "存在值为" << x << "的元素" << endl;
else cout << "不存在值为" << x << "的元素" << endl;
(4)
set插入元素时,用函数 insert() eg:a.insert(2)
(5)迭代使用迭代器:
for(set<int>::iterator iter=a.begin();iter!=a.end();iter++) cout << *iter << ' ' ;
2.vector (向量)
vectror<int> a;
(1)**********重要:当还不存在a[i]时,不能使用a[i] ;
eg:for(int i=0;i<10;i++) a[i]=i;///错误!!!!!!!
赋值:
for(int i=0;i<10;i++) a.push_back(i); //用push_back()函数
(2)删除最后一个元素,用函数pop_back(); eg: a.pop_back()
(3)删除指定位置元素,用erase() 注意:**********第0个,第1个,第2个
eg:删除第3个位置的元素 a.erase(a.begin()+3);
(4)清空容器内所有元素 用a.clear();
(5)获取大小:a.size();
3.string (STL真乃骚猪)
string a;
(1)在尾部插入时,就记一个 += 运算符,真滴骚
char b; string c;
a+=n; a+=c; //都可以得到想要的效果
(2)在指定位置插入******单个字符 **********第0个,第1个,第2个
a.insert(a.begin()+x,b); //b是字符,插在第x个位置上,原有的第x位置元素向后移一位。
(3)截取字符串 用substr
a="jiujingxiaoduye";
string b=a.substr(5) ;//从第五个字符开始,到最后的字符全部赋值给b b="ngxiaoduye"
string c=a.substr(5,3) //从第五个字符开始,连数三个字符形成字符串赋值给b c="ngx