77范文网 - 专业文章范例文档资料分享平台

C++ Primer学习笔记(3)

来源:网络收集 时间:2019-06-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

//

const text *ps; // ps 是一个指针,它的对象是指向 int 的常量指针 int * cosnt *ps;

typedef char *pstring ;

const pstring cstr = 0; // cstr 是指向char 的常量指针

const pstring *ps; // ps 是一个指针 ,它的对象是指向 char 的常量指针

2.5.2 auto 类型说明符

C++11 新标准引入了auto’类型说明符,用它就能让编译器替我们去分析表达式的所属的类型;auto让编译器通过初始值来推断变量类型。显然,auto定义的变量必须初始值。

auto item = val1+val2; //item 定义的变量必须有初始值

复合类型 常量 和auto

Auto一般会忽略顶层const,同时底层const则会保留下来。例如:

const int ci = i,&cr = ci;

auto b = ci;// b 是一个整数 ( ci的顶层const特性被忽略掉了) auto c = cr;// c 是个整数 (cr是ci的别名,ci本身是一个顶层const) auto d = &i;// d 是一个整数的指针 (整数的地址就是指向整数的指针)

auto e =&ci;// e 是一个指向整数常量的指针(对常量对象取地址是一种底层const)

如果希望推断出的auto类型是一个顶层const,需要指明: Const auto f = ci; 还可以设置引用类型为auto,

auto &g = ci;

坚持就是胜利,每天写一点,每天都有一点进步,加油!!!

auto &h = 42; cosnt auto &j = 42;

2.5.3 decltype类型指示符

C++11新标准引入了第二中类型说明符decltype,它的作用是选择并返回操作数的数据类型。在此过程中,编译器分析表达式并的它的类型,却不实际计算表达式的值。

decltype (f()) sunm = x; // sum 的类型就是函数 f 的返回类型

decltype 处理顶层cosnt 和引用的方式与auto有些方式不同。

const int ci = 0,&ci = ci;

decltype(ci) x =0; // x 的类型是cosnt int

decltype(cj) y =x; // y 的类型cosnt int&,y 绑定到变量x decltype(cj) z; // 错误:z是一个引用,必须初始化

decltype 和 引用----(这里看不懂)------P63页 2.6 自定义的数据结构 第

3章 字符串,向量,和数组

3.1 命名空间的using声明 3.2 标准库类型string

3.2.1 定义和初始化string 对象

string s1; //默认初始化,s1 是一个空的字符串 string s2 = s1; // s2 是 s1 的一个副本 string s3 = \ // s3 是该字符串字面值的副本 string s4(10,'c') //s4 的内容是10个c

坚持就是胜利,每天写一点,每天都有一点进步,加油!!!

直接初始化----------不使用= 拷贝初始化-----------使用=

string s5 =\ //拷贝初始化 string s6(\ //直接初始化 string s7(10,'c'); //直接初始化,

string s8 = string(10,'b'); //创建一个临时对象进行拷贝

3.2.2 string对象的操作

string s; //空字符串,

cin>>s; //将string对象读入s,遇到空白停止 cout<

说明:输入“ Hello World ”,输出是“Hello”,输出没有空格。即就是输入开始的空格不计,再遇到空格结束。

string s1,s2; //空字符串,

cin>>s1>>s2; //将string对象读入s,遇到空白停止 cout<

说明:输入“ Hello World ”,输出“Hello”,输出的是“Hello World” 使用getline读取一整行

string line;

while( getline(cin,line))

cout<

return 0; return 0;

坚持就是胜利,每天写一点,每天都有一点进步,加油!!!

string 的 empty 和 size 操作 string::size_type 类型

在C++11新标准中,允许编译器通过auto 或者 decltype 来推断变量的类型

auto len = line.aize(); /// len 的类型是 string::size_type

比较 string 对象

字面值和string 对象的相加

string s1=\string s3 = s1 + \cout<

当把string对象和字符字面值及字符串字面值混在一条语句中使用时,必须确保每个加法运算符(+)的两侧的运算对象至少有一个是string:

// //

string s1=\string s3 = s1 + \cout<

string s10 = \这样也正确

string s5 = \ //两个运算对象不是string string s6 = s1 + \

string s7 = \不能把字面值直接相加 string tmp = s1 + \ // s6 = tmp + \ ; //

string s8 = (\不能把字面值直接相加

坚持就是胜利,每天写一点,每天都有一点进步,加油!!!

注意:C++中字符串字面值并不是标准库中类型string的对象。字符串字面值和string是不同的类型。 3.2.3 处理string对象的字符 3.3 标准库类型vector

Vector是模板而非类型,有vector生成的类型必须包含vector中元素的类型, 3.3.1定义和初始化vector对象

vectorsvec; //默认初始化,svec不含任何元素 vectorivec;

vectorivec2(ivec); //把ivec的元素拷贝给ivec2 vectorivec3 = ivec;//把ivec的元素拷贝给ivec3

列表初始化vector对象

vectorarticles = { \, \, \ }; vectorv1{ \, \, \ };//列表初始化 创建指定数量的元素

vectorivec(10, -1); // 10个int类型的元素,每个元素赋值为-1 vectorsvec(10, \); //

值初始化---可以只提供vector对象容纳的元素数量而

vectorivec(10); //10个元素,每个元素初始化为0

vectorsvec(10); //10个元素,每个都是空的字符串对象

3.3.2 向vector对象中添加元素 vectorv2; //空的vector对象

for (i = 0; i < 100; ++i)

坚持就是胜利,每天写一点,每天都有一点进步,加油!!!

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++ Primer学习笔记(3)在线全文阅读。

C++ Primer学习笔记(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/649256.html(转载请注明文章来源)
上一篇:健康四大基石
下一篇:试卷(附答案)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: