算法分析与设计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;
}
原文地址:https://www.cnblogs.com/ZCWang/p/12507479.html