标签:c++
转载请注明出处:http://blog.csdn.net/auto_ac/article/details/43966695
注:内容不全,记录的是部分细节知识点
std::string str1 = "abc";
std::string str2(str1);
std::string str3("abcd");
std::string str4(10, ‘a‘); //初始化为 10个a
std::string::size_type (unsigned long)
str2 = str1; 先将str2内存释放掉,再重新分配内存存放str1副本
std::string s1("hello");
std::string s2("world");
std::string s3 = s1 + ", "; (ok)
std::string s4 = "hello" +", "; (error)
std::string s5 = s1 + ", " +"world"; (ok) //重要
std::string s6 = "hello" +", " + s2; (error)
<, >, =, !=, <=, >= 按字典序比较
std::string str;getline(std::cin, str);
isalnum 数字字母
isalpha 字母
iscntrl 控制符
isdigit 数字
isgraph 不是空格,但可打印
islower 小写字母
isprint 可打印
ispunct 标点符号
isspace 空格
isupper 大写
isxdight 十六进制数
tolower 大写字母变成小写,其它字母不变
toupper 小写字面变成大写,其它字母不变
vector <T> v1;
vector <T> v2(v1);
vector <T> v3(n, i); //n个值为i的元素
vector <T> v4(n); //初始化n个元素的副本
注:初始化没赋值都为空, 比方int的值是0, string的值是空字符串
v.empty()
v.size()
v.push_back();
v[n]
v1 = v2 赋值
v1 == v2 判断对象是否相等
!=, <, <=, >. >= 对象比较大小
*iter = 0; 解引用操作符(*操作符)
vector<int>::iterator iter;//迭代器定义
vector<int>::const_iterator iter;//不改变对象的值的迭代器定义,迭代器可以修改值重点
const vector<int>::iterator iter = v.begin();//迭代器的值不能修改;重点
*(iter+number) //越界或碰到v.end()可以存在,可以与其它迭代器进行判断,但不能进行解引用运算,
//number类型为vector::size_type
*(iter-number)
iter1-iter2 //两个迭代器的距离,类型为difference_type (long long)
vector<int>::iterator it = (v.begin()+v.end())/2; //接近O(1),取最中间的元素的迭代器
注:任何改变vector长度的操作都会使已存在的迭代器失效,例如在push_back(), erase()以后
bitset<n> b; //n位,每位都为0
unsigned u = “4“;
bitset<n> b(u); //b为u的二进制副本, 位置0为低位, 即b[2] = 1;
string s = “101010101”;
bitset<n> b(s); //b为s串的副本,注意s必须是01串,否则报错,程序终止
bitset<n> b(s, pos, count) //pos为串s的起始位置,count为串的长度,选串的一部分作为副本给b
bitset<16> bitvec1(0xffff);// 位置0为低位,即1111111111111111
bitset<32> bitvec1(0xffff);// 位置0为低位,即11111111111111110000000000000000
string s("111011");
bitset<32> b(s);
//位置0为低位,即1110011000000000000000000000000
bitset<32> b(s, 2, 4);
//选串s的2~5位,位置0为低位,即10110000000000000000000000000000
bitset<32> b(s, s.size()-3);//倒着取最后3位,即110000000000000000000000000000
b.any() 是否存在有1的位
b.none() 不存在有1的位
b.count() 有1的位数
b.size()
b[pos]
b.test(pos) 测试pos位是否为1
b.set() 全部设1
b.set(pos) pos位设1
b.reset() 全部设0
b.reset(pos) pos位设0
b.flip() 全部取反
b.flip(pos) pos位取反
b.to_ulong() 转换成unsigned long整数
os << b逐位输出,从高位到低位, 比方bitset<32> b("1011");
存储为11010000000000000000000000000000(0~31
输出为00000000000000000000000000001011 (31~0)
标签:c++
原文地址:http://blog.csdn.net/auto_ac/article/details/43966695