stl是c++提供的一种数据结构的模板,可以大大的减少编程时的代码量。stl主要分为容器,迭代器,算法三种。
迭代器指一种类似指针的结构。
下面主要介绍c
string
string s;
s.find(&string);
//找子串,如果没有返回-1,如果有返回开始坐标
s.insert(pos,&string);
//在pos处插入子串
getline(cin,s);
//向s中读入一行带有空格的字符串
sstream库
使用sstream将字符串按空格分割
int main(){
string s="abcd efghijk lmnopqrst";
stringstream ss;
ss<<s;
string substr;
while(ss>> substr){
cout<< substr<<endl;
}
}
stack
stack的操作函数:
size() //返回栈中元素个数
empty() //如果是空栈,返回1,否则返回0
push() // 向栈顶插入一个元素
top() //返回栈顶元素
pop() //弹出栈顶元素
queue
size()
empty()
push() // 向栈顶插入一个元素
top() // 返回栈顶元素
pop() // 弹出栈顶元素
vector
size() //返回元素个数
empty() //返回是否为空
clear() //清空
.front()/.back() //返回首/尾元素的值
.push_back()/.pop_back()
.begin()/.end() //返回首/尾的迭代器
reverse(a.begin(),a.end())//反转向量
map
set/multiset
set和multiset都是调用库。其中set不能插入相同元素,但是强行插入不会报错。multiset可以插入相同元素。
insert() //插入一个数
find() //查找一个数,没有返回.end
count() //返回某一个数的个数
1. begin()--返回指向第一个元素的迭代器
2. clear()--清除所有元素
3. count()--返回某个值元素的个数
4. empty()--如果集合为空,返回true
5. end()--返回指向最后一个元素的迭代器
6. equal_range()--返回集合中与给定值相等的上下限的两个迭代器
7. erase()--删除集合中的元素
a.erase(val);//删除键值val
8. find()--返回一个指向被查找到元素的迭代器
9. get_allocator()--返回集合的分配器
10. insert()--在集合中插入元素
a.insert(pos,val);//在pos位置添加值val,位置不重要,因为插入后,set会自动排序
11. lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器
12. key_comp()--返回一个用于元素间值比较的函数
13. max_size()--返回集合能容纳的元素的最大限值
例如set<int> a; a.max_size返回的就是整型的上界214748364
14. rbegin()--返回指向集合中最后一个元素的反向迭代器
15. rend()--返回指向集合中第一个元素的反向迭代器
16. size()--集合中元素的数目
17. swap()--交换两个集合变量
18. upper_bound()--返回大于某个值元素的迭代器
19. value_comp()--返回一个用于比较元素间的值的函数