C++ Primer 读书笔记 - 2

字符串

相等性运算符(==和!=)分别检验两个string对象想等或不相等,string 对象相等意味着长度及所包含字符全部相同。关系运算符 <、<=、>、>=分别检验一个string对象是否小于、小于等于、大于、大于等于另一个 string 对象,依照(大小写敏感的)字典顺序:

  • 1、如果两个 string 对象的长度不同,而且较短的 string 对象的每个字符都与较长的 string 对象对应位置上的字符相同,就说较短 string 对象小于较长 string 对象
  • 2、如果两个 string 对象在某些对应的位置上不一致,则 string 对象比较的结果其实是 string 对象中第一对相异字符比较的结果。
c++11 for 语句
for (declaration : expression)
	statement

expression 部分是一个对象,表示一个序列。declaration 部分负责定义一个变量,该变量将被用于访问序列中的基础元素。每次迭代,declaration 部分的变量会被初始化为 expression 部分的下一个元素值。

使用 for 语句改变字符串中的字符

需要将循环变量定义成引用类型。

只处理一部分字符

想访问 string 对象中的单个字符有两种方式:

  • 使用下标
  • 使用迭代器
string::size_type 类型

size 函数返回一个 string::size_type 类型的值,该配套类型体现了标准库类型与机器无关的特性。具体使用时通过作用域操作符表明名字 size_type 是在类 string 中定义的。
string::size_type 是一个无符号类型的值,而且足够存放下任何 string 对象大小。同时使用该类型进行数值对比时要注意不要和带符号数混用,因为 s.size() < n 在 n 是一个负值的 int 时判断结果基本肯定为 true, 因为负数会自动转换成一个很大的无符号数。

下标运算符([ ])接受的输入参数是 string::size_type 类型的值,表示要访问的字符的位置;返回值是该位置上字符的引用。下表值必须大于等于 0 而小于 s.size(),超过范围则引发不可预知的结果

vector

  • 老式声明 vector 元素的 vector 的方式为外层 vector 对象的右尖括号和其他元素类型之间添加空格: vector<vector <int> >
  • 提供初始元素值的列表,只能把初始值都放在花括号里进行列表初始化而不能放在圆括号里:vector<string>{"a", "b"};
  • 值初始化:圆括号可用于同值的初始化vector<int> v1(10, 1) \\ 十个1的 vector,不填1则默认0。甚至在列表初始化失败时也会尝试用值初始化处理vector<string> v1{10, "hi"} \\ 十个"hi"的vector
  • 使用vector的 size_type时需要先指定它是由哪种类型定义的 vector<int>::size_type
  • 只有当元素的值可比较时,vector对象才能被比较
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值