码迷,mamicode.com
首页 > 编程语言 > 详细

《C++ Primer》读书记录二

时间:2015-06-07 20:04:57      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

第二部分 容器和算法  第9章~第11章

2015年5月13日  星期三 

 第9章 顺序容器 sequential contai顺序容器的定义

vector<string> svec;
list<int> ilist;
deque<double> ddeq; 
  • 容器元素的初始化,将一个容器初始化为另一个容器的副本,初始化为一段元素的副本,分配和初始化指定数目的元素
  • 容器内元素的类型约束:元素必须支持赋值运算,元素类型的对象必须可以赋值。事实上,除了输入输出标注库类型外,其他标准库类型都是有效的容器元素类型
  • 迭代器和迭代器范围
    • 迭代器为所有标准库容器类型提供的运算,*iter,iter->num,++iter,iter1==iter2,iter1!=iter2
    • 迭代器为vector和deque容器提供额外的运算,iter+/-n,iter1+/-=iter2,iter1-iter2,>,>=,<,<=
    • 迭代器范围,beg,end,左闭合区间,[beg,end)
  • 顺序容器的操作
    • 添加元素
      //通用
      c.push_back(text_word);
      c.push_front(t)
      //只适用于list和deque
      c.insert(p,t);
      c.insert(p,n,t);
      c.insert(p,b,e);
    • 容器大小的操作,c.size();c.max_size();c.empty()
    • 访问元素,c.back();c.front();返回元素的引用
    • 删除元素,c.pop_back();c.pop_front()(不适用于vector),c.erase(p);c.erase(b,e);
  • vector容器的自增长,capacity和reserve成员函数
  • 容器的选用,插入操作影响容器的选择,元素访问的影响
    • 如果程序要求随机访问元素,应该使用vector或deque容器
    • 如果程序必须在容器中间插入或删除元素,用list容器
    • 如果程序在容器两侧插入或删除元素,采用deque容器
  • 再谈string类型
    • 构造string对象的其他方法
    • 修改string对象的方法,与容器共存的操作,string特有的操作
    • 只适用string类型的操作,c.substr(pos,n);c.substr(pos);s.substr();append()和replace()函数
    • string类型的查找操作,s.find(args);s.rfind(args)
    • string对象的比较
  • 容器适配器,queue,priority_queue和stack
    • 初始化,stack<int> stk<deq>;将deq的元素拷贝到stk,

 

 

第10章 关联容器 associative container

关联容器通过键key存储和访问元素,顺序容器则通过元素在容器中的位置顺序存储和访问元素

  • 引言,pair类型
    • pair的创建和初始化,pair<string,string> anon
    • pair对象的操作,直接访问,typedef pair<string,string> Author; Author a1;a1.first;1.second
    • 生成新的pari对象,make_pair()函数生成
  • 关联容器,共享大部分的顺序容器操作,不提供front,push_front,pop_front,back,push_back,pop_back操作
  • map类型
    • 对象的定义,约束:键类型必须支持“小于“操作
      map<k,v> m;
      map<k,v> m(m2);
      map<k,v> m(b,e);
    • map定义的类型,key_type键类型,mapped_type值类型,value_type是pair类型
    • 使用下标访问map
    • 利用insert插入对象
    • 查找并读取map元素,m.count(k);m.find(k)
    • 从map中删除元素,m.erase(k);
  • set类型

    set容器中,value_type不是pair类型,而是与key_type类型相同的类型。set存储的元素仅仅是键,而没有所关联的值,

    与map一样,set容器存储的键也必须是唯一的,而且不能修改

  • multimap和multiset类型
    • 允许一个键对应多个实例
    • 元素的添加和删除,insert,erase
    • 元素的查找,multiset和multimap中元素按照顺序存储,即一个键关联的元素必然相邻存放
      • find和count操作
      • lower_bound(k)不小于k的第一个元素,upper_bound(k)返回大于k的第一个元素,左闭合区间
      • equal_range()函数

 

 

第11章 泛型算法 generic algorithm

  • 概述,每个泛型算法的实现都独立于单独的容器
  • 初窥算法

《C++ Primer》读书记录二

标签:

原文地址:http://www.cnblogs.com/sherPur/p/4558938.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!