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

  1. 头文件不应包含using声明

  2. 初始化string对象:

     string s1;           // 默认初始化,s1是空串
     string s2(s1);       // s2是s1的副本,直接初始化
     string s2 = s1;      // 同上,拷贝初始化
     string s3("value");  // s3是字面值"value"的副本,除了字面值最后的 '\0'外
     string s3 = "value"; // 同上
     string s4(n, 'c');   // 把s4初始化为连续 n 个字符 'c' 组成的字符串,直接初始化

  3. <span style="color: rgb(64, 70, 76); font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, STHeiti, 'Microsoft Yahei', sans-serif; font-size: 14px; line-height: 22.399999618530273px; background-color: rgb(253, 254, 249);">读取未知数量的string对象</span><pre name="code" class="cpp"><pre name="code" class="cpp">#include <iostream>
    #include <string>
    using std::cin;
    using std::cout;
    using std::endl;;
    using std::string;<pre name="code" class="cpp"> int main()
     {
         string str;
         // 逐个读取单词,直到文件末尾
         while (cin >> str) { // 逐行读取,保留输入的空格:while (getline(str))
             cout << str << endl;
         }
    
         return 0;
     }
     
     
     
  4. "string".size()的返回值是string::size_type类型

  5. 字符串字面值与string不是同种类型

  6. range for,c++11的语句,其语句体内不应该改变其遍历序列(string, vector, iterator等)的大小

     #include <iostream>
     #include <string>
     using  std::cin;
     using std::cout;
     using std::endl;
     using std::string;
    
     int main()
     {
         string str = "asdfg";
         for (char c : str) {
             cout << c << endl;
         }
    
         return 0;
     }

  7. 下标运算符 [],接收的是string::size_type类型参数,返回值是该位置上的字符的引用。不可以使用[]越界访问

  8. vector对象的初始化:

     vector<T> v1;            // 默认初始化,v1是一个空的vector,它潜在的元素是T类型的
     vector<T> v2 {t1, t2};   // v2包含了初始值个数的元素,每个元素被赋予相应的初始值
     vector<T> v2 = {t1, t2}; // 同上
     vector<T> v3 = (n);      // v3包含了n个重复地执行了值初始化的对象
     // 余下的方式与string的初始化方式类似

  9. vector、string对象的下标运算符可用于访问已存在的元素,而不能用于添加元素

  10. 迭代器

    • 运算符与指针相似(解引用、迭代器的移动等)
    • 如果容器为空,则begin和end返回的都是尾后迭代器
    • 因为尾后迭代器实际上不是指向某个元素,所以不能对其进行操作
    • 指针也是迭代器

  11. 箭头运算符:把解引用和成员访问两个操作结合在一起,如 it->mem等价于(*it).mem






  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值