• 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算法

  • 相关阅读:
    根据会员权限显示指定字段教程与源码
    关键字替换排除HTML标签属性字符
    C# 图片处理(压缩、剪裁,转换,优化)
    点击按钮后表单自动提交的问题
    浏览器中添加收藏当前网页
    Javascript基础知识整理
    JS中不同类型的值比较问题
    ACM训练场
    sencha/extjs 动态创建grid表格
    sencha 报错问题汇总
  • 原文地址:https://www.cnblogs.com/yangtianxing/p/2510993.html
Copyright © 2020-2023  润新知