算法分析与设计C++ 第二章:STL
1)容器(Container)
2)迭代器(Iterator)
3)算法(Algorithm)
4)函数对象(Function object)
5)适配器(Adaptor)
6)空间配制器(allocator)
C++ 容器 迭代器
容器类
向量(vector)
deque
list
set multiset
map multimap
迭代器相关函数
begin() 返回一个迭代器,指向第一个元素
end() 返回一个迭代器,指向最后一个元素之后
rbegin() 返回一个逆向迭代器,指向逆向遍历的第一个元素
rend() 返回一个逆向迭代器,指向逆向遍历的最后一个元素之后
#include<iostream>
#include<string>
#include<iterator>
#include<map>
using namespace std;
int main(){
int n;
while(cin>>n&&n)
{
map<string, int> Balloon;
string s;
for(int i=0;i<n;i++)
{
cin >> s;
Balloon[s] +;
}
int iMax = 0;
map<string,int>::iterator point,loc;
for(point = Balloon.begin();point!=Balloon.end();point++)
{
if(iMax<point->second)
{
iMax = point->second;
loc = point;
}
}
cout<<loc->first<<endl;
}
return 0;
}
#include<iostream>
#include<vector>
using namespace std;
void display(vector<int> &v);
int main(){
cout<<"Hello"<<endl;
int i;
vector<int> v,v2(10);
cout<<"v1 length:"<<v.size()<<endl;
cout<<"v2 length:"<<v2.size()<<endl;
v.push_back(111);
return 0;
}
void display(vector<int> &v)
{
}
set / multiset:集合
基本原理
将插入的值(第一个操作数)与树根(第二个操作数)(红黑树,二叉排序树)进行比较,如果返回值是true,则在左子树中进行插入 否则在右子树中进行插入
#include <iostream>
#include <set>
using namespace std;
int main(){
set<int> s;
s.insert(3);
s.insert(2);
s.insert(1);
s.insert(1);
cout<<"set 的 size 值为 :"<<s.size()<<endl;
cout<<"set 的 maxsize的值为 :"<<s.max_size()<<endl;
cout<<"set 中的第一个元素是 :"<<*s.begin()<<endl;
cout<<"set 中的最后一个元素是:"<<*s.end()<<endl;
s.clear();
if(s.empty()) { cout<<"set 为空 !!!"<<endl; }
cout<<"set 的 size 值为 :"<<s.size()<<endl;
cout<<"set 的 maxsize的值为 :"<<s.max_size()<<endl;
return 0;
}