c++primer笔记 2017-5-11
string s1 = "a string";
auto n=s1.size();
n=(*p).size();
n= p->size;
- 点运算符和箭头运算符都可用于访问成员。 点运算符可以获得==类对象==的一个成员。->把左侧的指针解引用后访问它的成员。。
- 运算优先级:
- *iter++ ; ///先iter++ 再解引用。
- iter++->empty(); ///先判断iter迭代器所指的元素是否为空,再iter++ 指向下一个元素
- 条件运算符 ?:
- string finalgrede = (grade < 60)? “fail”:”pass”;
- 条件运算符也可以嵌套,但影响可读性!
- finalgrade = (grade > 90) ? “high pass” :(grade < 60)? “fail”:”pass”;
- 条件运算符==优先级非常低==,因此当长表达式中嵌套了条件运算子表达式时,通常在它两端加括号。
- 位运算符
- 作用于整数类型的运算对象,并把运算对象看成是二进制的集合。
- 并没有规定符号位怎么处理,所以最好只对无符号类型使用位运算符。
- 移位运算符 << >>
- 移出边界的位被舍弃。
- 左移<<运算符在右侧插入值为0的二进制位。 右移运算符>> 的行为取决于左侧运算对象的类型
- 若该运算对象是无符号类型,在左侧插入值为0的二进制位。
- 若为带符号类型,在左侧插入符号位的副本或值为0的二进制位
- -