
c++-primer
文章平均质量分 57
海螺上的斑点
没有什么拿来炫耀的时候,就好好努力吧。
展开
-
C++10.5 multimap和multiset类型---equal_range、lower_bound 和upper_bound函数
简介multimap和multiset 类型对应的头文件也是map和set 头文件multimap和multiset 所支持的操作分别与map和set 操作相同,只有一个例外:multimap 不支持下标操作。不能对multimap对象使用下标操作,引用在这类容器中,某个键可能对应多个值。关联容器中map 和set 的元素是按顺序存储的。multimap和multiset也一样。因此,在mul原创 2015-06-15 10:54:05 · 5452 阅读 · 0 评论 -
C++ 12.1 类的定义、声明、成员函数、数据成员
简介数据成员一般声明为private,以实现信息的隐蔽成员函数一般声明为public,以提供外界使用的接口构造函数一般声明为public,以便创建类的对象创建一个类类型的对象时,编译器会自动使用一个构造函数来初始化该对象,构造函数是一个特殊的、与类同名的成员函数,用于初始化每个数据成员来设置初始值。构造函数一般使用一个构造函数初始化列表,来初始化对象的数据成员构造函数初始化列表由成员名和带原创 2015-06-17 14:42:39 · 5306 阅读 · 0 评论 -
C++12.1.4 类的前向声明、不完全类型类
简介在一个给定的源文件中,一个类只能被定义一次,如果在多个文件中定义一个类,那么每个文件中的定义必须是完全相同的将类定义放在头文件中,可以保证在每个使用类的文件中以同样的方式定义类。使用头文件保护符,来保证即使头文件在同一个文件中被包含多次,类定义也只出现一次。只声明却没有定义的类称为—————–不完全类型,不完全类型不能定义该类型的对象,只能用于定义指向该类型的指针及引用,或者用于声明(不是原创 2015-06-18 10:24:20 · 4298 阅读 · 2 评论 -
C++primer6.1--6.10 语句、变量 break、default
简介一声明语句二复合语句1块语句2语句的作用域三if 语句1if 语句四switch 语句1switch 语句的使用2switch语句中的控制流重点实际上程序不是只会执行匹配的case标号相关联的语句程序从该点匹配点开始执行并跨越case 边界继续执行其他语句直到switch 结束或遇到break语句为止3慎用break 语句4default 标号5switch 表达式与原创 2015-05-17 19:43:10 · 614 阅读 · 0 评论 -
C++ 6.11 continue 、goto、try 异常处理
简介continue 语句导致最近的循环语句的当次迭代提前结束;对于 while 和 do while 语句,继续求解循环条件。对于 for 循环,程序流程接着求解for 语句 头中的expression表达式。continue 语句只能出现在for 、 while 、或者 do while 循环中,包括嵌套在这些循环内部的块语句中=============================原创 2015-05-19 16:21:48 · 1039 阅读 · 0 评论 -
C++9.3.6 容器 访问元素
简介========================================================================================================一、访问容器内的元素—-前提容器非空如果容器非空,那么容器类型的front和back成员将返回容器的第一个或最后一个元素的引用if(!ilist.empty()){ list<in原创 2015-06-04 15:18:31 · 558 阅读 · 0 评论 -
C++9.3.5容器大小的操作
简介==========================================================================================一、容器大小所有容器类型都提供四种与容器大小相关的操作。容器类型提供了resize操作类改变容器所包含的元素个数。如果当前的容器长度大于新的长度值,则该容器后部的元素会被删除;如果当前的容器长度小于新的长度值,则原创 2015-06-04 14:56:49 · 710 阅读 · 0 评论 -
C++ 9.2迭代器支持的运算和迭代器范围
简介=========================================================================================================一、迭代器支持的运算每种容器类型都提供若干共同工作的迭代器类型,与容器类型一样,所有迭代器具有相同的接口:如果某种迭代器支持某种操作,那么支持这种操作的其他迭代器会以相同的方式支持这种操作原创 2015-06-01 15:14:16 · 3318 阅读 · 1 评论 -
C++ 第13章 复制控制---复制构造函数、赋值操作符、析构函数
每种类型,无论是内置类型还是类类型,都对该类型对象的一组(可能为空的)操作的含义进行了定义。比如,我们可以将两个int值相加,运行vector对象的size操作等。这些操作定义了用给定类型的对象可以完成什么任务。每种类型还定义了创建该类型的对象时会发生什么—–构造函数定义了该类类型对象的初始化。类型还能控制复制、赋值或撤销该类型的对象时会发生什么—-类通过特殊的成员函数:复制构造函数、赋值操作符原创 2015-06-24 14:55:40 · 494 阅读 · 0 评论 -
C++primer 4.3 C风格字符串--字符数组(strlen、strcpy、strcat)上
简介建议一C风格字符串1C风格字符串简介二C风格字符串的使用三C风格字符串的标准库函数四尽可能使用标准库类型string简介1. C风格字符串是以空字符null结束的字符数组;2. 字符串的比较和比较结果都须使用标准库函数strcmp进行建议在使用处理C风格字符串的标准库函数strlen时,不要忘记字符串结束符null,一定要加上!!!传递给标准库函数strcat和strcpy的第一原创 2015-05-12 16:24:25 · 904 阅读 · 0 评论 -
C++9.3.8 赋值与swap
简介与赋值相关的操作符都作用于整个容器===============================================================================================================================================================一、赋值与swap* 与赋值相关的操作符原创 2015-06-08 09:16:35 · 1058 阅读 · 0 评论 -
C++7.2.6 main:处理命令行选项(没看懂)
简介没看懂!!!!!!!!!!=================================================================================================================================主函数main是演示C程序如何将数组传递给函数的好例子。直到现在,我们所定义的主函数都只有空的形参表:int m原创 2015-05-25 15:53:41 · 963 阅读 · 0 评论 -
C++7.3.3--7.4递归、默认实参
简介===================================================================================================一、递归1、递归直接或间接调用自己的函数称为递归函数。一个简单的递归函数例子就是阶乘的计算。递归函数必须定义一个终止条件,否则函数就会“永远递归下去”,意味着函数会一直调用自身直到程序栈耗尽。下原创 2015-05-25 20:01:59 · 505 阅读 · 0 评论 -
C++ 10.3.9 "单词转换"map对象
简介==============================================================================================下面介绍如何创建、查找和迭代遍历一个map对象。给出一个string对象,把它转换成另一个string对象。本程序的输入是两个文件,第一个文件包括了若干单词对,每对的第一个单词将出现在输入的字符串中,而第二原创 2015-06-11 15:46:01 · 405 阅读 · 0 评论 -
C++10.3.8 map对象的迭代遍历---begin 和end
简介========================================================================================与其他容器一样,map容器同样提供begin和end运算,以生成用于遍历整个容器的迭代器。map<string,int>::const_iterator map_it = word_count.begin();whi原创 2015-06-11 14:48:53 · 1234 阅读 · 0 评论 -
C++ 10.3 关联容器map定义以及value_type、key_type、mapped_type
简介map是<键—值>对的集合 如:map< string ,int> word_count。map类型通常可理解为关联数组:可使用键作为下标来获取一个值,正如内置数组类型一样。而关联的本质在于元素的值与某个特定的键相关联,而并非通过元素在数组中的位置来获取。要使用map对象,则必须包含map 头文件。 #include < map >. 在定义map 对象时,必须分别指明键和值的类型:记住!原创 2015-06-10 11:15:12 · 11330 阅读 · 0 评论 -
C++10.3.5 map : : insert 的使用(下)(有不懂)
简介谨记 value_type是pair< const K, V>类型的同义词,K为键类型,V为键所关联的值的类型map对象中一个给定键只对应一个元素。如果试图插入的元素所对应的键已经在容器中,则insert 将不做任何操作。通常来说,下标操作符返回左值。它返回的左值是特定键所关联的值。有别于vector或string类型,map下标操作符返回的类型与对map迭代器进行解引用获得的类型不相原创 2015-06-10 17:00:21 · 8214 阅读 · 0 评论 -
C++ 10.4 关联容器-----set 类型
简介=============================================================================================map 容器是键—值对的集合,好比以人名为键的地址和电话号码。set 容器只是单纯的键的集合。适用于只需要判断某值是否存在的情况。而map适用于需要了解键与值的对应的的情况。set 支持map的很多操作,除原创 2015-06-11 15:59:49 · 851 阅读 · 0 评论 -
C++ 10.3.6 查找并读取map中的元素
简介对于map对象,count成员的返回值只能是0或1 . map 容器只允许一个键对应一个实例,所以 count 可有效地表明一个键是否存在。 count 返回出现的次数find 操作返回指向元素的迭代器,如果元素不存在,则返回end 迭代器。===========================================================================原创 2015-06-11 10:23:21 · 4654 阅读 · 0 评论 -
C++ 10.3.7 从map对象中删除元素
简介map容器的erase 操作返回void ,而顺序容器的erase 操作返回一个迭代器,指向被删除元素后面的元素。==============================================================================================从map容器中删除元素的erase 操作有三种变化形式。(9.3.7erase)与顺序容原创 2015-06-11 14:39:23 · 1319 阅读 · 0 评论 -
C++ 9.3.4 容器支持的运算---关系操作符
简介===========================================================================================一、关系操作符所有容器类型都支持用关系操作符类实现两个容器的比较。-* 比较的容器必须具有相同的容器类型,而且其元素类型也必须相同。*容器的比较是基于容器内元素的比较。容器的比较使用了元素类型定义的同一个关系操原创 2015-06-04 14:55:25 · 897 阅读 · 0 评论 -
C++ 9.1.2 容器内元素的类型约束-------非引用、非IO标准库类型
简介===============================================================================================================一、容器内元素的类型约束—-非引用、非IO标准库类型C++语言中,大多数类型都可用作容器的元素类型。容器元素类型必须满足以下两个约束:元素类型必须支持赋值运算;元素类型的对原创 2015-06-01 14:46:37 · 945 阅读 · 0 评论 -
C++7.3 return 语句----返回引用、非引用类型
简介==================================================================================================================一、没有返回值的函数—void函数return 语句用于结束当前正在执行的函数,并将控制权返回给调用此函数的函数。 return 语句有两种形式:return;原创 2015-05-25 16:18:59 · 1574 阅读 · 0 评论 -
C++ 12.5 友元
简介===================================================================================================在某些情况下,允许特定的非成员函数访问一个类的私有成员,同时任然阻止一般的访问。友元机制允许一个类将对其非公有成员的访问权授予指定的函数或类。但是一个类将对其非公有成员的访问授予其他函数或类,会破原创 2015-06-23 16:08:40 · 568 阅读 · 0 评论 -
C++primer5.5-5.7 自增自减、箭头、条件操作符
简介前置自增 /减操作符 : 使其操作数加1 / 减1,操作结果是修改后的值;后置自增 /减操作符 : 使其操作数加1 / 减1,操作后产生操作数原来的、未修改的值作为表达式的结果养成使用前置操作符的习惯 ++i ================================================一、自增自减操作符1、前置和后置自增自减操作符前置自增 /减操作符 : 使其操作原创 2015-05-15 15:34:24 · 728 阅读 · 0 评论 -
C++primer5.2关系、逻辑操作符
简介建议=================================================一、关系、逻辑运算符1、逻辑与、逻辑或操作符关系操作符和逻辑操作符使用算术或指针类型的操作数,返回bool类型的值:true 和false。expr1 && expr2 expr1 | | expr2 仅当expr1 不能确定表达式的值时,才会求解expr2.也就是说,当且原创 2015-05-14 10:47:23 · 370 阅读 · 0 评论 -
C++primer 5.1算术操作符
简介建议===================================一、算术运算符1、运算符的优先级—一元操作符优先级最高一元操作符优先级最高,其次是乘除、最后是加减。算术操作符都是左结合,意味着当操作符的优先级相同时,这些操作符从左向右依次与操作数结合。2、除法、求余或求模操作符操作数皆为正数,结果都为正数或0;操作数皆为负数,除法结果为正数,求模结果为负数或0;只有一个操作原创 2015-05-14 10:34:02 · 452 阅读 · 0 评论 -
C++primer 3.3 标准库 迭代器 iterator
一、迭代器简介二、 #const_iterator容器类型三、迭代器的算术运算一、迭代器简介除了用下标来访问vector对象的元素外,还可以通过迭代器;迭代器是一种检查容器内元素并遍历元素的数据类型,一般遍历元素都用迭代器,少数容器用下标操作;标准库为每一种标准容器定义了一种迭代器类型。迭代器iterator定义 vector<int>::iterator iterbegin 和end操原创 2015-05-07 10:56:06 · 474 阅读 · 0 评论 -
C++primer 5.4 赋值操作符(2.1 类型转换)
简介赋值操作符的左操作数必须是非const的左值;与其他二元操作符不同的是,赋值操作符具有右结合性,当表达式有多个赋值操作符时,从右向左结合。在多个赋值操作中,各个对象必须具有相同的数据类型或者可以相互转换(2.1节)为同一类型的数据类型赋值操作具有低优先级,所以,最好加个括号=========================================================原创 2015-05-15 15:10:28 · 461 阅读 · 0 评论 -
C++primer 3.3 标准库类型 vector
一、vector对象的定义vector 是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和string一样,标准库将负责管理与存储元素相关的内存。vector称为容器,里面所有的对象必须同一类型。使用vector之前,必须包含相应的头文件 # include using std::vectorvector是一个模板,不是数据类型。使用模板可以编写一个类定义或函数定义,用于多个不原创 2015-05-05 14:09:59 · 506 阅读 · 0 评论 -
c++ primer 第一章 1.1节学习总结
一个简单的c++程序包含内容;程序编译–编译器、编译方法;程序运行;原创 2015-04-20 15:45:00 · 507 阅读 · 0 评论 -
C++ primer学习 1.4 if 语句
例子 课本p15#include<iostream>int main(){int currval=0,val=0;//首先判断有无输入,读取第一个数if(std::cin>>currval){ int cnt=1; //如果有数据输入,那么再判断输入的值是啥 while(std::cin>>val) { if(val==currval)原创 2015-04-22 15:39:42 · 686 阅读 · 1 评论 -
C++primer 学习1.2 --1.3初识输入和输出
一、标准输入输出对象 二、endl的作用 三、std 四、注释简介一、标准输入输出对象C++语言并未定义任何的输入输出(IO)语句,它包含了一个全面的标准库iostream来提供IO机制。标准库iostream包括istream :输入流ostream:输出流 一个流就是一个字符序列,是从IO设备读出或是写入IO设备的。输入流对象:cin 输出流对象:cout :标准输出对象;原创 2015-04-22 13:47:35 · 435 阅读 · 0 评论 -
C++primer 5.10复合表达式的求值--优先级
简介======================一、优先级1、复合表达式含有两个或两个以上操作符的表达式称为复合表达式。操作数的结合方式取决于操作符的优先级和结合性。2、圆括号凌驾于优先级之上求值顺序原创 2015-05-16 15:28:14 · 352 阅读 · 0 评论 -
C++ 7.1 函数的定义
简介函数的运行以形参(隐式)定义和初始化开始也就是说,当我们调用一个函数时,第一件事就是创建形参的那两个变量,并将这两个变量初始化为调用函数时传递的实参值。在函数体中定义的变量只在该函数中才可以访问,这种变量称为局部变量,这种变量只在函数运行时才存在;执行return 语句后,被挂起的主调函数在调用处恢复执行,并将函数的返回值用作求解调用操作符的结果,继续处理在执行调用的语句中所剩余的工作。原创 2015-05-20 14:09:59 · 638 阅读 · 0 评论 -
C++primer 5.11new 和delete表达式
简介==========================================================================================一、new和delete表达式1、动态创建对象的初始化动态创建的对象可用初始化变量的方式实现初始化int i(1024);//i 的值是1024int *pi=new int(1024);pi所指向的新对象被初始化为原创 2015-05-17 19:14:24 · 550 阅读 · 0 评论 -
C++12.4.4 隐式类类型转换----explicit
简介除非明显想要定义隐式转换,否则,单形参构造函数应该为 explicit。可以避免错误。============================================================================================================class Sales_item{public: double avg_price原创 2015-06-23 13:50:28 · 460 阅读 · 0 评论 -
C++12.4.1 构造函数(与类名相同,没有返回类型)----有初始化列表的构造函数
简介构造函数的名字与类的名字相同,并且不能指定返回类型。可以没有形参,也可以定义多个形参构造函数不能声明为const创建类类型的const对象时,运行一个普通构造函数来初始化该const对象。================================================================================================原创 2015-06-19 11:03:20 · 3755 阅读 · 0 评论 -
C++ 12.4.2.默认实参与构造函数
Sale_item(const std::string &book):isbn(book),units_sold(0),revenue(0.0)}{}Sale_item():units_sold(0),revenue(0.0){}//还有一个isbn没有显示的初始化,它会使用string的默认构造函数来初始化isbnclass Sale_item{public: Sale_item(co原创 2015-06-23 10:15:44 · 443 阅读 · 0 评论 -
C++primer 5.3位操作符
简介===================================一、位操作符1、位操作符简介位操作符使用整型的操作数。位操作符将其整型操作数视为二进制位的集合,为每一位提供检验和设置的功能;另外,类操作符还可以用于bitset类型的操作数;位操作符的操作数的整数的类型可以是有符号的也可以是无符号的。如果操作数是负数,则位操作符如何处理其操作数的符号依赖于机器。强烈建议使用unsi原创 2015-05-14 11:11:20 · 365 阅读 · 0 评论