string
string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内容,以及提供各种有用的操作。
#include <string>
using std::string
初始化string对象的方式
string s1; 默认构造函数,s1为空串
string s2(s1); 将s2初始化为s1的一个副本
string s3("value"); 将s3初始化为一个字符串字面值副本
string s4(n, 'c'); 将s4初始化为字符‘c’的n个副本
string对象的操作
s.empty() 如果s为空串,则返回true,否则返回false
s.size() 返回s中字符的个数
s[n] 返回s中位置为n的字符,位置从0开始计数
s1 + s2 把s1和s2连接成一个新字符串,返回新生成的字符串
s1 = s2 把s1内容替换为s2的副本
v1 == v2 比较v1与v2的内容,相等则返回true,否则返回false
!=, <, <=, >, >= 保持这些操作符惯有的含义
注:size操作返回的是string::size_type类型的值
string对象中字符的处理
#include <cctype>
cctype头文件定义的函数
isalnum(c) 如果c是字母或数字,则为true.
isalpha(c) 如果c是字母,则为true.
iscntrl(c) 如果c是控制字符,则为true.
isdigit(c) 如果c是数字,则为true.
isgraph(c) 如果c不是空格,但可打印,则为true.
islower(c) 如果c是小写字母,则为true.
isprint(c) 如果c是可打印的字符,则为true.
ispunct(c) 如果c是标点符号,则true.
isspace(c) 如果c是空白字符,则为true.
isupper(c) 如果c是大写字母,则true.
isxdigit(c) 如果c是十六进制数,则为true.
tolower(c) 如果c是大写字母,则返回其小写字母形式,否则直接返回c.
toupper(c) 如果c是小写字母,则返回其大写字母形式,否则直接返回c.
更多关于string类型的文章
http://blog.csdn.net/longcjx/archive/2010/10/23/5961438.aspx
vector
vector是同一种类型的对象的几何,每个对象都有一个对应的整数索引值。和string对象一样,标准库将负责管理与存储元素相关的内存。
#include <vector>
using std::vector;
初始化vector对象的方式
vector<T> v1; vector保存类型为T的对象.默认构造函数v1为空
vector<T> v2(v1); v2是v1的一个副本.
vector<T> v3(n,i); v3包含n个值为i的元素.
vector<T> v4(n); v4含有值初始化的元素的n个副本.
vector操作
v.empty() 如果v为空,则返回true,否则返回false.
v.size() 返回v中元素的个数 //vector<int>::size_type
v.push_back(t) 在v的末尾增加一个值为t的元素.
v[n] 返回v中位置为n的元素.
vector的下标操作
for (vector<int>::size_type ix=0; ix!=ivec.size(); ++ix)
ivec[ix]=0;
迭代器简介
1.容器的iterator类型
vector<int>::iterator iter;
2.begin和end操作
vector<int>::iterator iter=ivec.begin(); //ivec.end()
3.vector迭代器的自增和解引用运算
用解引用操作符(*操作符)来访问迭代器所指向的元素
*iter //ivec[0]
*iter=0; //把ivec[0]这个元素的值赋为0.
++iter
for (vector<int>::size_type ix=0; ix!=ivec.size(); ++ix)
ivec[ix]=0;
for (vector<int>::iterator iter=ivec.begin();
iter!=ivec.end(); ++iter)
*iter=0;
bitset
有些程序要处理二进制位的有序集,每个位可能包含0(关)值或1(开)值。位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法。标准库提供的bitset类简化了位集的处理。
#include<bitset>
using std::bitset;
初始化bitset对象的方法
bitset<n> b; b有n位,每位都为0
bitset<n> b(u); b是unsigned long型u的一个副本
bitset<n> b(s); b是string对象s中含有的位串的副本
bitset<n> b(s,pos,n); b是s中从位置pos开始的n个位的副本
bitset对象上的操作
b.any() b中是否存在置为1的二进制位?
b.none() b中不存在置为1的二进制位吗?
b.count() b中置为1的二进制位的个数
b.size() b中二进制位的个数
b[pos] 访问b中在pos处二进制位
b.test(pos) b中在pos处的二进制位是否为1?
b.set() 把b中所有二进制位都置为1
b.set(pos) 把b中在pos处的二进制位置为1
b.reset() 把b中所有二进制位都置为0
b.reset(pos) 把b中在pos处的二进制位置为 0
b.flip() 把b中所有二进制位逐位取反
b.flip(pos) 把b中在 pos 处的二进制位取反
b.to_ulong() 用b中同样的二进制位返回一个unsigned long值
os << b 把b中的位集输出到os流
注:count操作的返回类型是标准库中命名为size_t的类型.