码迷,mamicode.com
首页 > 编程语言 > 详细

C++ Primer个人笔记 by Nicolas 第三章

时间:2015-02-27 17:13:08      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:c++

转载请注明出处:http://blog.csdn.net/auto_ac/article/details/43966695

注:内容不全,记录的是部分细节知识点

string

几个初始化:

std::string str1 = "abc";

std::string str2(str1);

std::string str3("abcd");

std::string str4(10, ‘a‘); //初始化为 10个a


size()类型:

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)


string比较运算符:

<, >, =, !=, <=, >=    按字典序比较


getline

std::string str;getline(std::cin, str);


cctype

判断函数:

isalnum 数字字母

isalpha 字母

iscntrl 控制符

isdigit 数字

isgraph 不是空格,但可打印

islower 小写字母

isprint 可打印

ispunct 标点符号

isspace 空格

isupper 大写

isxdight 十六进制数


变换函数:

tolower 大写字母变成小写,其它字母不变

toupper 小写字面变成大写,其它字母不变


vector

几个初始化:

vector <T> v1;

vector <T> v2(v1);

vector <T> v3(n, i);    //n个值为i的元素

vector <T> v4(n);      //初始化n个元素的副本

注:初始化没赋值都为空, 比方int的值是0, string的值是空字符串


vector对象的操作:

v.empty()

v.size()

v.push_back();

v[n]

v1 = v2      赋值

v1 == v2      判断对象是否相等

!=, <, <=, >. >=      对象比较大小


vector迭代器:

*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

几个初始化:

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


bitset对象的操作:

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++ Primer个人笔记 by Nicolas 第三章

标签:c++

原文地址:http://blog.csdn.net/auto_ac/article/details/43966695

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!