• Professional C++读书笔记02


    2012-05-16

    Chapter04

    1、容器分类

             顺序容器:向量vector,列表list。双端队列deque→存储一个元素序列

             容器适配器:队列queue,优先队列priority queue,栈stack→建立在三种顺序容器之上的接口

             关联容器:集合set,映射map(包含多集,多映射)→建立了键与值的关联

             在set中,键本身就是值

             特殊容器:位集bitset

    2、set按有序方式存储元素,插入、删除、查找都是O(logn)

             底层用平衡二叉树实现→使用情况:如果希望插入删除和查找性能相当

             set不允许有重复的元素       ∴可用multiset存储重复的元素

    3、map存储了键/值对          元素按键排序,其他方面与set相同

             map、set

             应用举例:set集合会忽略重复的单词

             set<string>s;

             set<string>::iterator j;

             string t;

             while(cin>>t)

                       s.insert(t);

             for(j=s.begin() ; j!=s.end() ; j++)

                       cout<<*j<<endl;

    map集合可以进行key,value的映射(统计单词个数)

             map<string,int>M;

             map<string,int>:iterator j;

             string t;

             while(cin>>t)

                       M[t]++;

             for(j=M.begin() ;j!=M.end(); j++)

                       cout<<j->first<<”   ”<<j->second>>endl;

    4、bieset:标志集合,每个标志用一位表示(无插入删除方法)

             但可用O(1)进行查找

    5、STL算法:用模板实现,在大多数不同容器类型都能使用

             STL把数据(容器)与功能(算法)分离

             但有些容器以类方法的形式提供某些算法(优先使用,效率更高)

             例如vector v;

             v.find()      //类方法

             find(…)      //STL算法

  • 相关阅读:
    Android-MediaProvider数据库模式
    java String.getBytes()编码问题——String.getBytes(charset)
    设置Eclipse中的tab键为4个空格的完整方法
    linux下的zip命令
    关于facebook infer 静态代码审查工具
    关于软件测试人员能力模型的建立(from知乎)
    [ 转] 漫谈iOS Crash收集框架
    iOS开发如何提高(from 唐巧的博客)
    c++ web服务器
    小米开源监控系统的说明文档
  • 原文地址:https://www.cnblogs.com/yangtianxing/p/2510993.html
Copyright © 2020-2023  润新知