v2.push_back(i);//依次把整数值放入末尾
string word; vector
text.push_back(word);
3.3.3 其他vector操作-------91页表3.5
vector
for (auto &i : v) //对于v中的每个元素,元素i为引用
i *= i; //求元素的平方
for (auto i : v) //对于v中的每个元素
cout << i << \;
cout << endl;
不能通过下标形式添加元素 vector
//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末元素的下一个位置 vector
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
vector
坚持就是胜利,每天写一点,每天都有一点进步,加油!!!
string::const_iterator it4; // it4 只能读字符,不能写字符
说明:const_iterator和常量指针差不多,能读取但是不能修改它的指向的元素值。
Begin 和 end 运算符
Begin和end的返回的具体类型有对象是否是常量决定,如果对象是常量,begin和end返回的是const_iterator:
vector
auto it1 = v.begin();//it的类型是vector
为了避免这么默认行为,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)在线全文阅读。
相关推荐: