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

C++ Primer学习笔记(4)

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

v2.push_back(i);//依次把整数值放入末尾

string word; vectortext; while (cin >> word)

text.push_back(word);

3.3.3 其他vector操作-------91页表3.5

vectorv{1, 2, 3, 4, 5, 6};

for (auto &i : v) //对于v中的每个元素,元素i为引用

i *= i; //求元素的平方

for (auto i : v) //对于v中的每个元素

cout << i << \;

cout << endl;

不能通过下标形式添加元素 vectorivec;

//for(decltype(ivec.size()) ix = 0; ix != 10; ++ix)

//ivec[ix] = ix; //可以通过编译,但是不能运行

for (decltype(ivec.size()) ix = 0; ix != 10; ++ix)

ivec.push_back(ix);

注意:vector对象的下标运算符可用于访问已存在的元素,而不能用于添加元素

3.4 迭代器介绍 3.4.1 使用迭代器

//由编译器决定,b和e的类型

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

//b表示v的第一元素,e表示v末元素的下一个位置 vectorv;

auto b = v.begin(), e = v.end();

注意:如果容器为空,则begin和end返回的是同一容器,都是尾后迭代器 迭代器运算符

string s(\);

if (s.begin() != s.end()) //确保s非空 { }

auto it = s.begin();//it表示s的第一个字符 *it = toupper(*it);//将当前字符改成大写形式 cout << *it;

将迭代器从一个元素移到另外一个元素

string s(\);

for (auto i = s.begin(); i != s.end(); ++i)

*i = toupper(*i);//当前字符改成大写形式

cout << s << endl;

再加上条件!isspace(*i)就会只是第一个单词变成大写形式

迭代器的类型----实际上使用iterator和const_iterator来表示迭代器的类型:

vector::iterator it; //it能读写vector的元素 string::iterator it2; // it2能读写string对象中的元素

vector::const_iterator it13; // it3只能读元素,不能写元素

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

string::const_iterator it4; // it4 只能读字符,不能写字符

说明:const_iterator和常量指针差不多,能读取但是不能修改它的指向的元素值。

Begin 和 end 运算符

Begin和end的返回的具体类型有对象是否是常量决定,如果对象是常量,begin和end返回的是const_iterator:

vectorv; const vectorcv;

auto it1 = v.begin();//it的类型是vector::iterator auto it2 = v.end();//it2的类型是vector::iterator

为了避免这么默认行为,C++11引入了两个函数 Cbegin(); cend();

无论vector 对象是不是常量,返回值都是cosnt_iterator; 结合解引用和成员函数访问操作

解引用接待器可获得迭代器所指的对象,如果该对象的类型恰好是类, 3.4.2 迭代器运算 3.5 数组 3.5.3 指针和数组

使用取地址运算符来获取指向某个对象的指针,取地址运算符可以作用于任何对象。

string nums[] = { \, \, \ };//数组元素是string对象 string *p = &nums[0];//p指向nums的第一个元素

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

(1)使用auto变量的初始值是指针

int ia[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

auto ia2(ia);//ia2是一个整形指针,指向ia的第一个元素 //ia2 = 42;

(2)当使用decltype关键字时上述转换不会发生,decltype(ia)返回的类型是10个整数构成的数组

decltype(ia) ia3 = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

//ia3 = p; ia3[4] = 3;

标准库函数begin 和end

------数组不是类类型,将数组作为参数

int ia[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int *beg = begin(ia);//ia指向首元素的指针 int *last = end(ia);//指向arr尾元素的指针

左值和右值

----当一个对象被用作右值时,用的是对象的值(内容);当对象被用作左值时,用的是对象的身份(在内存中的位置)。

第4章 表达式

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

第5章 语句

第6章 函数

6.2 参数传递

当形参是引用类型时,对应的实参是引用传递或者函数被传引用调用。 当实参的值被拷贝给形参时,形参和实参是两个独立的对象。 6.2.2 传引用参数

---通过使用引用形参,允许参数改变一个或者多个实参的值。 使用引用避免拷贝

//比较两个string对象的长度

bool isShorter(const string &s1, const string &s2) { }

return s1.size() < s2.size();

使用引用形参返回额外信息 6.2.3 const 形参和实参

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

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

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