zoukankan      html  css  js  c++  java
  • 算法分析与设计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;
    }
    
  • 相关阅读:
    python3爬虫--反爬虫应对机制
    mongodb与mysql区别(超详细)
    cookie和session运行机制、区别
    flask轻量级框架入门
    python自定义元类metaclass,约束子类
    MongoDB ObjectId类型 序列化问题
    【python 内置模块】 返回一个规定长度的随机字符串
    使用PyMongo有多重,使用MongoClientwith的实例时必须小心 fork()
    MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。
    分布式文件系统架构HDFS、FastDFS、Haystack
  • 原文地址:https://www.cnblogs.com/ZCWang/p/12507479.html
Copyright © 2011-2022 走看看