c++ primer第九章笔记

原创 2015年07月07日 21:11:31

1:创建和初始化vector对象的方法:

(1)分配和指定数目的元素,并对这些元素进行值初始化: vecor<int> ivec(10);//ivec包含10个0值元素。

(2)分配和指定数目的元素,并对这些元素进行值初始化为指定值:vecor<int> ivec(10,1);//ivec包含10个1值元素。

(3)将vector对象初始化为一段元素的副本:int ia[10]=[0,1,2,3,4,5,6,7,8,9];vector<int> ivec(ia,ia+10);//ivec包含10个元素分别为0~9;

(4)将vector对象初始化为另一个vector对象的副本:vector<int> ivec1(10,1);vector<int> ivec2(ivec1);注意:将一个容器复制给另一个容器时,容器类型和元素类型都必须相同。


2::迭代器是一种检查容器内元素并遍历元素的数据类型。每种容器类型都定义了自己的迭代器类型,如vector:     Vector<int>::iterator  iter;迭代器类型可使用解引用操作符(*操作符)来访问迭代器所指向的元素。解引用操作符返回迭代器当前所指向的元素。


3:begin 和end

c.begin()      返回一个迭代器,它指向容器c的第一个元素。

c.rbegin()     返回一个逆序迭代器,它指向容器c的最后一个元素。

c.end()         返回一个迭代器,它指向容器c的最后一个元素的下一个位置

c.rend()         返回一个逆序迭代器,它指向容器c的第一个元素的前面位置


4:

c.push_back(t)    在容器 c 的尾部添加值为 t 的元素。返回 void 类型 
c.push_front(t)    在容器 c 的前端添加值为 t 的元素。返回 void 类型 。只适用于 list 和 deque 容器类型. 
c.insert(p,t)  在迭代器 p 所指向的元素前面插入值为 t 的新元素。返回指向新添加元素的迭代器 
c.insert(p,n,t) 在迭代器 p 所指向的元素前面插入 n 个值为 t 的新元素。返回 void 类型 
c.insert(p,b,e) 在迭代器 p 所指向的元素前面插入由迭代器 b 和 e 标记的范围内的元素。返回 void 类型


5:比较的容器必须具有相同的容器类型,而且其元素类型也必须相同。例如,vector<int> 容器只能与 vector<int> 容器比较,而不能与 list<int> 或 vector<int> 容器比较,而不能与 list<int> 或 vector<double> 类型的容器比较。


6:访问元素

c.back()     返回容器 c 的最后一个元素的引用。如果 c 为空,则该操作未定义 
c.front()      返回容器 c 的第一个元素的引用。如果 c 为空,则该操作未定义
c[n]             返回下标为 n 的元素的引用 如果 n <0 或 n >= c.size(),则该操作未定义 。只适用于 vector 和 deque 容器 
c.at(n)        返回下标为 n 的元素的引用。如果下标越界,则该操作未定义 。只适用于 vector 和 deque 容器


7:删除元素

c.erase(p)     删除迭代器 p 所指向的元素  。返回一个迭代器,它指向被删除元素后面的元素。如果 p 指向容器内的最后一个元素,则返回的迭代器指向容器的超出末端的下一位置。如果 p 本身就是指向超出末端的下一位置的迭代器,则该函数未定义 
c.erase(b,e)   删除迭代器 b 和 e 所标记的范围内所有的元素 返回一个迭代器,它指向被删除元素段后面的元素。如果 e 本身就是指向超出末端的下一位置的迭代器,则返回的迭代器也指向容器的超出末端的下一位置 
c.clear()         删除容器 c 内的所有元素。返回 void 
c.pop_back()  删除容器 c 的最后一个元素。返回 void。如果 c 为空容器,则该函数未定义 
c.pop_front()  删除容器 c 的第一个元素。返回 void。如果 c 为空容器,则该函数未定义 。只适用于 list 或 deque 容器 


8:赋值与swap

c1 = c2               删除容器 c1 的所有元素,然后将 c2 的元素复制给 c1。c1 和c2 的类型(包括容器类型和元素类型)必须相同 
c1.swap(c2)     交换内容:调用完该函数后,c1 中存放的是 c2 原来的元素,c2 中存放的则是 c1 原来的元素。c1 和 c2 的类型必须相同。该函数的执行速度通常要比将 c2 复制到 c1 的操作快 
c.assign(b,e)    重新设置 c 的元素:将迭代器 b 和 e 标记的范围内所有的元素复制到 c 中。b 和 e 必须不是指向 c 中元素的迭代器 
c.assign(n,t)     将容器 c 重新设置为存储 n 个值为 t 的元素

9  :容器的capacity(容量)与size(长度):

    size 指容器当前拥有的元素个数;而 capacity 则指容器在必须分配新存储空间之前可以存储的元素总数。capacity  >=  size .

版权声明:本文为博主原创文章,未经博主允许不得转载。

c++ primer plus(第6版)中文版 第九章编程练习答案

第九章编程练习答案 9.1根据以下头文件内容编写多文件程序,提示用户输入姓名的等级,存在结构中(多文件编译时,要一起编译,g++ mian.cc golf.cc)...
  • gd275313
  • gd275313
  • 2014年05月11日 14:39
  • 1739

C++ Primer Plus第六版 第九章 编程练习答案

//第一题 //golf.h const int Len = 40; struct golf{ char fullname[Len]; int handicap; }; void setgol...
  • zhaoshu01234
  • zhaoshu01234
  • 2015年08月07日 09:35
  • 1894

C++Primer第五版 第9章 顺序容器(练习解答)

这一章开始,正式接触了容器的概念,常见的容器的有vector,list这两种,当然使用这两种容器,需要分别包含同名头文件vector,list。当然本章还介绍了其他的顺序容器,容器的神奇之处,当然比仅...
  • fengzhanghao23
  • fengzhanghao23
  • 2015年09月18日 07:41
  • 1463

【c++ primer】第九章读书笔记

第九章   内存模型和名称空间
  • fghbnmjkl1
  • fghbnmjkl1
  • 2017年03月08日 08:09
  • 118

【C++ Primer plus】【第九章】内存模型和名称空间

【单独编译】 1.简单说明了头文件的作用,方便引用避免重复定义声明,通常包括: A.函数声明 B.宏定义 C.结构声明(不含有函数实现,谨声明) D.类声明 E.模板 F.内联函数 2.include...
  • Ezio_Auditore_
  • Ezio_Auditore_
  • 2016年03月31日 23:48
  • 106

C++ Primer 学习笔记(持续更新......)

本笔记主要是一个记录,整理和总结一下C++学习过程中的知识点。 struct和class 区别:两个关键字都是进行类的定义。struct也可以定义类,和class定义的类唯一不同之处就在于默认的初始访...
  • u012931582
  • u012931582
  • 2017年03月12日 22:05
  • 641

C++ Primer Plus 第九章(单独编译)

C++ Primer Plus 第九章(单独编译)
  • gdut2015go
  • gdut2015go
  • 2015年09月12日 17:38
  • 568

c++ Primer学习笔记

第一章 文件头及声明 关于extern 使用extern 声明而不定义,它是说明变量定义在程序其他地方   全局不初始化的extern int i; 是声明不定义;只要声明并且有初始化式,那么...
  • leiming32
  • leiming32
  • 2012年12月17日 23:57
  • 5219

C Primer Plus(第6版)第九章答案

1.#include double min (double x, double y); int main (void) { double x, y; printf ("Ente...
  • sirius_black_tea
  • sirius_black_tea
  • 2017年07月25日 15:17
  • 525

C++primer第五版第一章学习笔记

1. 函数的定义: return type, function name, parameter list, function body // int为返回类型,main为函数名,小括号包围的是可以为...
  • sunhero2010
  • sunhero2010
  • 2015年11月03日 15:30
  • 523
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++ primer第九章笔记
举报原因:
原因补充:

(最多只允许输入30个字)