1. 命名空间
using用法:在C++中,使用using可以声明命名空间,也可以给类类型起别名
如:
1.using namespace std; //这句话一般放在程序开头
2.using SI = student_item; //相当于给类名起了一个别名
应该注意:位于头文件的代码中,一般不用using声明。
2.标准库类型string
(1) 标准库类型string 定义在命名空间std中
用法:
#include < string >
using std:: string;
(2) 初始化string 对象的方式:
用法:
string s5 = “hello ”
string s6 (“hello “)
string s8 = string (10, ‘c’)
(3) 对string的操作如下:
用法:
从 is 中读取一行付给S: getline (is, s)
判断S是否为空: S..empty()
返回S中字符个数: S.size()
(4) 读取未知数量的string :
cin 与 getline() 区别:
cin : 在执行读取操作时候,刚开始会忽略空格,\n, \t 从真正的字符开始读,遇到下一个空白结束(这里的空白指空格,换行符,制表符)
getline() 只识别换行符,见到换行符就结束。
(5) string的比较
如果两个string相同,长短不同,则较短的字符小。
如果两个string 不同,比较第一个不同的char
对于string ,不能将两个字面值相加。
即: 字符串字面值,与string 是不同的类型。
3.标准库类型vector
标准库类型vector 时表示对象的集合,它容纳着相同的对象。但是不可以包括引用。定义方式:vector < string > s2 (10 , “hi”), 对于增加元素,用push_back()函数:
vector < int > va ;
for (int i = 0 ; i < 1090 ; i ++)
v2. push_back(i);
对于容器的比,和string比较差不多,如果对应位置元素相同,则哪个短哪个就小。不同的话,比较第一个相异的元素。
4.迭代器
通过下标运算符可以访问string和vector,获取地址用begin()和end()。返回的其实是指针。
迭代器的两个限制:
(1)不能使用范围for 对迭代器添加元素
(2)对改变迭代器操作都会让vector的迭代器失效
(3)(*item).empty == item –> empty
5.指针的数组或者数组的指针:
读取原则:从括号内向括号外,从右向左。
(1) int * (& array) [10] : 首先知道 array 是一个引用,其次知道他引用的是一个数组,这个数组内有10各元素,元素类型都是int * 类型。
(2) int * ptrs[10] : ptr 是个i数组,里面含有10个元素,其中每个元素都是int * 类型。。。int * 类型就是int 指针类型。
(3) int (* ptrs)[10] : ptr 是 int * 类型, 他指向了一个数组,数组里边有10个int 元素。