STL初步之容器
一、algorithm 库:
1、函数 min()
2、Sort()函数 对容器内的内容进行排序。
应用:
对数组进行排序,Sort(a,a+n);
对vector进行排序,Sort(v.begin(),v.end());
3、unique函数:
可以删除有序数组内的重复元素。
二、容器:
1、不定长数组 vector:
在 #include<vector> 类库中
Vector a;
- a.size() //获取a的大小
- a.push_back() //向a的末尾添加元素
- a.pop_back() //删除最后一个元素
- a.clear() //将数据清空
- a.empty() //测试是否为空
定义:
Vector<type> a;
Vector<int> a;
使用迭代器来访问元素
vector<string> v6 = { "hi","my","name","is","lee" };for (vector<string>::iterator iter = v6.begin(); iter != v6.end(); iter++)
{
cout << *iter << endl;
//下面两种方法都行
cout << (*iter).empty() << endl;
cout << iter->empty() << endl;
}
使用反向迭代器
for (vector<string>::reverse_iterator iter = v6.rbegin(); iter != v6.rend(); iter++)
{
cout << *iter << endl;
}
2、集合set:
和vector类似,但set里面的元素是有序的且是唯一的。
3、字符串String :
表示可变字符串
在库 #include<string> 中
操作:
- getline(cin,s) 从is中读取一行赋给s,返回is
- s.empty() s为空返回true,否则返回false
- s.size() 返回s中字符的个数
- s[n] 返回s中第n个字符的引用,位置n从0记起
- 迭代器操作:
string str("hi sysu");for (string::iterator it = str.begin(); it != str.end(); it++)
{
cout << *it << endl;
}
4、list:
是一个双向列表,
#include<list>
5、map:
#include<map>
对map的遍历:
for (map<string, int>::iterator it = v.begin();it !=v.end(); it++)
{
cout << it->first << " " << it->second << endl; //注意用法,不是用*it来访问了。first表示的是key,second存的是value
}
m1.erase("Curry");//通过关键字来删除
m1.insert(pair<string, int>("Harris", 89)); //也可以通过insert函数来实现增加元素
m1.clear(); //清空全部