zoukankan      html  css  js  c++  java
  • 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算法

  • 相关阅读:
    移动端开发rem布局之less+媒体查询布局的原理步骤和心得
    前端实现文件下载方式总汇
    如何能提高CSS编写技巧?提高Web前端开发效率
    常用的CSS命名规则
    CSS背景background
    CSS盒子模型
    简单的树形菜单如何写?
    彻底掌握css动画【transition】
    首页白屏优化实践
    我来聊聊面向模板的前端开发
  • 原文地址:https://www.cnblogs.com/yangtianxing/p/2510993.html
Copyright © 2011-2022 走看看