1、C+算术类型类型 含义 最小存储空间bool boolean NAchar character 8 bitswhcar_t wide character 16 bitsshort short integer 16 bitsint integer 16 bitslong long integer 32 bitsfloat single-precision floating-point 6 significant digitsdouble double-precision floating-point 10 significant digitslong double extended-precis
2、ion floating-point 10 significant digitsC+关键字asm do if return tryauto double inline short typedefbool dynamic_cast int signed typeidbreak else long sizeof typenamecase enum mutable static unioncatch explicit namespace static_cast unsignedchar export new struct usingclass extern operator switch virtu
3、alconst false private template voidconst_cast float protected this volatilecontinue for public throw wchar_tdefault friend register true whiledelete goto reinterpret_castC+操作符替代名and bitand compl not_eq or_eq xor_eqand_eq bitor not or xor几种初始化 string 对象的方式string s1; 默认构造函数 s1 为空串string s(cp); 定义一个新的
4、string 对象,用 cp 所指向的(以空字符 null结束的)C 风格字符串初始化该对象string s2(s1); 将 s2 初始化为 s1 的一个副本string s3(“value”); 将 s3 初始化为一个字符串字面值副本string s4(n, c); 将 s4 初始化为字符c的 n 个副本iss; 从输入流 is 中读取一个以空白字符分隔的字符串,写入 soss2.size(),则该操作未定义,无论 len2 的值是多少,最多只能复制 s2.size()-pos2 个字符string 对象的操作s.empty() 如果 s 为空串,则返回 true,否则返回 falses.s
5、ize() 返回 s 中字符的个数sn 返回 s 中位置为 n 的字符,位置从 0 开始计数s1+s2 把 s1 和 s2 连接成一个新字符串,返回新生成的字符串s1=s2 把 s1 内容替换为 s2 的副本v1=v2 比较 v1 与 v2 的内容,相等则返回 true,否则返回 false!=, , = 保持这些操作符惯有的含义与容器共有的 string 操作s.insert(p, t) 在迭代器 p 指向的元素之前插入一个值为 t 的新元素。返回指向新插入元素的迭代器s.insert(p, n, t) 在迭代器 p 指向的元素之前插入 n 个值为 t 的新元素。返回 voids.inser
6、t(p, b, e) 在迭代器 p 指向的元素之前插入迭代器 b 和 e 标记范围内所有元素。返回 voids.assign(b, e) 在迭代器 b 和 e 标记的范围内的元素替换为 s。对于 string 类型,该操作返回 s;对于容器类型,则返回 voids,assign(n, t) 用值为 t 的 n 个副本替换 s。对于 string 类型,该操作返回 s;对于容器类型,则返回 voids.erase(p) 删除迭代器 p 指向的元素。返回一个迭代器,指向被删除元素后面的元素s.erase(b, e) 删除迭代器 b 和 e 标记范围内所有的元素。返回一个迭代器,指向被删除元素段后面
7、的第一个元素string 类型区别于容器特有的操作s.insert(pos, n, c) 在下标为 pos 的元素之前插入 n 个字符 cs.insert(pos, s2) 在下标为 pos 的元素之前插入 string 对象 s2 的副本s.insert(pos, s2, pos2, len) 在下标为 pos 的元素之前插入 s2 中从下标 pos2 开始的 len 个字符s.insert(pos, cp, len) 在下标为 pos 的元素之前插入 cp 所指向数组的前 len 个字符s.insert(pos, cp) 在下标为 pos 的元素之前插入 cp 所指向的以空字符结束的字符串
8、副本s.assign(s2) 用 s2 的副本替换 ss.assign(s2, pos2, len) 用 s2 中从下标 pos2 开始的 len 个字符副本替换 ss.assign(cp, len) 用 cp 所指向数组的前 len 个字符副本替换 ss.assign(cp) 用 cp 所指向的以空字符结束的字符串副本替换 ss.erase(pos, len) 删除从下标 pos 开始的 len 个字符string 的字串操作s.substr(pos, n) 返回一个 string 类型的字符串,它包含 s 中从下标 pos 开始的 n 个字符s.substr(pos) 返回一个 strin
9、g 类型的字符串,它包含从下标 pos 开始到 s 末尾的所有字符s.substr() 返回 s 的副本修改 string 对象的操作s.append(args) 将 args 串接在 s 后面。返回 s 引用s.replace(pos, len, args) 删除 s 中从下标 pos 开始的 len 个字符,用 args 指定的字符替换之。返回 s 的引用在这个版本中,args 不能为 b2, e2s.replace(b, e, args) 删除迭代器 b 和 e 标记范围内所有的字符,用 args 替换之。返回s 的引用在这个版本中,args 不能为 s2, pos2, len2appe
10、nd 和 replace 操作的参数:argss2 string 类型的字符串 s2s2, pos2, len2 字符串 s2 中从下标 pos2 开始的 len2 个字符cp 指针 cp 指向的以空字符结束的数组cp, len2 cp 指向的以空字符结束的数组中前 len2 个字符n, c 字符 c 的 n 个副本b2, e2 迭代器 b2 和 e2 标记的范围内所有字符string 对象中字符的处理(cctype 中的函数)isalnum(c) 如果 c 是字母或数字,则为 trueisalpha(c) 如果 c 是字母,则为 trueiscntrl(c) 如果 c 是控制字符,则为 tr
11、ueisdigit(c) 如果 c 是数字,则为 trueisgraph(c) 如果 c 不是空格,但可打印,则为 trueislower(c) 如果 c 是小写字母,则为 trueisprint(c) 如果 c 是可打印字符,则为 trueispunct(c) 如果 c 是标点符号,则为 trueisspace(c) 如果 c 是空白字符,则为 trueisupper(c) 如果 c 是大写字母,则为 trueisxdigit(c) 如果 c 是十六进制数,则为 truetolower(c) 如果 c 是大写字母,返回其小写字母形式,否则直接返回 ctoupper(c) 如果 c 是小写字母
12、,则返回其大写字母形式,否则直接返回 cstring 查找操作符s.find(args) 在 s 中查找 args 的第一次出现s.rfind(args) 在 s 中查找 args 的最后一次出现s.find_first_of(args) 在 s 中查找 args 的任意字符的第一次出现s.find_last_of(args) 在 s 中查找 args 的任意字符的最后一次出现s.find_first_not_of(args) 在 s 中查找第一个不属于 args 的字符s.find_last_not_of(args) 在 s 中查找最后一个不属于 args 的字符string 类型提供的 f
13、ind 操作的参数c, pos 在 s 中,从下标 pos 标记的位置开始,查找字符 c。pos 的默认值为 0s2, pos 在 s 中,从下标 pos 标记的位置开始,查找 string 对象 s2。pos 的默认值为0cp, pos 在 s 中,从下标 pos 标记的位置形参,查找指针 cp 所指向的 C 分隔的以空字符结束的字符串。pos 的默认值为 0cp, pos, n 在 s 中,从下标 pos 标记的位置开始,查找指针 cp 所指向数组的前 n 个字符。pos 和 n 都没有默认值string 类型 compare 操作pare(s2) 比较 s 和 pare(pos1, n1
14、, s2) 让 s 中从 pos 下标位置开始的 n1 个字符与 s2 做比较pare(pos1, n1, s2, pos2, n2) 让 s 中从 pos1 下标位置开始的 n1 个字符与 s2 中从 pos2下标位置开始的 n2 个字符做比较pare(cp) 比较 s 和 cp 所指向的以空字符结束的字符串pare(pos1, n1, cp) 让 s 中从 pos1 下标位置开始的 n1 个字符与 cp 所指向的字符串作比较pare(pos1, n1, cp, n2) 让 s 中从 pos1 下标位置开始的 n1 个字符与 cp 所指向的字符串的前 n2 个字符做比较初始化 vectorv
15、ector v1; vector 保存类型为 T 对象,默认构造函数 v1 为空vector v2(v1); v2 是 v1 的一个副本vector v3(n, i); v3 包括 n 个值为 i 的元素vector v4(n); v4 含有值初始化元素的 n 个副本vector 操作v.empty() 如果 v 为空,则返回 true,否则返回 falsev.size() 返回 v 中的元素个数v.push_back(t) 在 v 的末尾增加一个值为 t 的元素vn 返回 v 中位置为 n 的元素v1=v2 把 v1 的元素替换为 v2 中元素的副本v1=v2 如果 v1 与 v2 相等,则
16、返回 true!=, , = 保持这些操作符惯有的含义初始化 bitset 对象的方法bitset b; b 有 n 位,每位都 0bitset b(u); b 是 unsigned long 型 u 的一个副本bitset b(s); b 是 string 对象 s 中含有的位串的副本bitset b(s, pos, n); b 是 s 中从位置 pos 开始的 n 个位的副本bitset 操作b.any() b 中是否存在置为 1 的二进制位?b.none() b 中不存在置为 1 的二进制位?b.count() b 中置为 1 的二进制位的个数b.size() b 中二进制位的个数bpo
17、s 访问 b 中在 pos 处二进制位b.test(pos) b 中在 pos 位的二进制位置为 1?b.set() 把 b 中所有二进制位都置为 1b.set(pos) 把 b 中在 pos 处的二进制位置为 1b.reset() 把 b 中所有二进制位都置为 0b.reset(pos) 把 b 中在 pos 处的二进制位置为 0b.flip() 把 b 中所有二进制位逐位取反b.flip(pos) 把 b 中在 pos 处的二进制位取反b.to_ulong() 用 b 中同样的二进制位返回一个 unsigned long 值os)strlen(s) 返回 s 的长度,不包括字符串结束符 n
18、ullstrcmp(s1, s2) 比较两个字符串 s1 和 s2 是否相同,返回 0(=),正数(),负数( greater than(大于) expr expr= greater than or equal(大于等于) expr= expr= equality(相等) expr= expr!= inequality(不等) expr!= expr创建自由的 stringstream 对象stringstream strm(s); 创建存储 s 的副本的 stringstream 对象,其中 s 是 string 类型的对象strm.str(); 返回 strm 中存储的 string 类型
19、对象strm.str(s); 将 string 类型的 s 复制给 strm,返回 void顺序容器类型顺序容器vector 支持快速随即访问list 支持快速出入/删除deque 双端队列顺序容器适配器stack 后进先出(LIFO)堆栈queue 先进先出(FIFO)队列priority_queue 有优先级管理的队列容器构造函数C c; 创建一个名为 c 的容器。C 是容器类型名,如 vector,T 是元素类型,如 int或 string 适用于所有容器。C c(c2); 创建容器 c2 的副本 c;c 和 c2 必须具有相同的容器类型,并存放相同类型的元素。适用于所有容器。C c(b
20、, e); 创建 c,其元素是迭代器 b 和 e 标示的范围内元素的副本。适用于所有容器。C c(n, t); 用 n 个值为 t 的元素创建容器 c,其中值 t 必须是容器类型 C 的元素类型的值,或者是可转换为该类型的值。只适用于顺序容器。C (n); 创建有 n 个值初始化(value-intitialized)元素的容器 c。只适用于顺序容器。常用迭代器运算*iter 返回迭代器 iter 所指向的元素的引用iter-mem 对 iter 进行解引用,获取指定元素中名为 mem 的成员。等效于(*iter).mem+iter, iter+ 给 iter 加 1,使其指向容器的下一个元素
21、-iter, iter- 给 iter 减 1,使其指向容器的前一个元素iter1=iter2, iter1!=iter2比较两个迭代器是否相等(或不等) 。当两个迭代器指向同一个容器中的同一个元素,或者当他们都指向同一个容器的超出末端的下一位置时,两个迭代器相等vector 和 deque 类型迭代器支持的操作iter+n, iter-n 在迭代器上加(减)整数值 n,将产生指向容器中前面(后面)第 n 个元素的迭代器。新计算出来的迭代器必须指向容器中的元素或超出容器末端的下一位置iter1+=iter2, iter1-=iter2这里迭代器加减法的复合运算:将 iter1 加上或减去 it
22、er2 的运算结果赋给 iter1iter1-iter2 两个迭代器的减法,其运算结果加上右边的迭代器即得左边的迭代器。这两个迭代器必须指向同一个容器中的元素或超出容器末端的下一位置。只适用于 vector 和 deque 容器, =, , = 迭代器的关系操作符。当一个迭代器指向的元素在容器中位于另一个迭代器指向的元素之前,则前一个迭代器小于后一个迭代器。关系操作符的两个迭代器必须指向同一个容器中的元素或超出容器末端的下一位置。只适用于 vector 和 deque 容器容器定义的类型别名size_type 无符号整型,足以存储此容器类型的最大可能容器长度iterator 此容器类型的迭代器
23、类型const_iterator 元素的只读迭代器类型reverse_iterator 按逆序寻址元素的迭代器const_reverse_iterator 元素的只读(不能写)逆序迭代器difference_type 足够存储两个迭代器差值的有符号整型,可为负数value_type 元素类型reference 元素的左值类型,是 value_type&的同义词const_reference 元素的常量左值类型,等效于 const value_type&容器的 begin 和 end 操作c.begin() 返回一个迭代器,它指向容器 c 的第一个元素c.end() 返回一个迭代器,它指向容器
24、c 的最后一个元素的下一位置c.rbegin() 返回一个逆序迭代器,它指向容器 c 的最后一个元素c.rend() 返回一个逆序迭代器,它指向容器 c 的第一个元素的前面位置在顺序容器中添加元素的操作c.push_back(t) 在容器 c 的尾部添加值为 t 的元素。返回 void 类型c.push_front(t) 在容器 c 的前端添加值为 t 的元素。返回 void 类型。只适用于 list 和 deque 容器类型c.insert(p, t) 在迭代器 p 所指向的元素前面插入值为 t 的新元素。返回指向新添加元素的迭代器c.insert(p, n, t) 在迭代器 p 所指向的元
25、素前面插入 n 个值为 t 的新元素。返回 void 类型c.insert(p, b, e) 在迭代器 p 所指向的元素前面插入由迭代器 b 和 e 标记的范围内的元素。返回 void 类型顺序容器的大小操作c.size() 返回容器 c 中的元素个数。返回类型为 c:size_typec.max_size() 返回容器 c 可容纳的最多元素个数,返回类型为 c:size_typec.empty() 返回标记容器大小是否为 0 的 bool 值c.resize() 调整容器 c 的长度大小,使其能容纳 n 个元素,如果 nc.size,则删除多出来的元素;否则,添加采用值初始化的新元素c.resize(n, t) 调整容器 c 的长度大小,使其能容纳 n 个元素。所有新添加的元素值都