C++手记--标准库类型

1.在头文件中,最好只定义确实需要的东西,如避免使用using声明,而是使用完全限定std::string,因为using会在每个include该文件中,进行声明

2.字符串字面值与string不是同一种类型

3.getline(cin,strTemp);读取一行文本,不包括换行符

4.string.size()返回长度为string::size_type类型,实现机器无关性,不要将返回值赋值给int类型

5.将str2赋值到str1的效率问题:首先将str1的内存释放掉,给str1分配足够存放str2的内存空间,将str2中所有字符复制到str1

6.string对象中对字符的处理,这些函数都在cctype.h中定义

    isalnum(c)    //c是字母或者数字

    isalpha(c)    //c是字母

    iscntrl(c)    //c是控制字符

    isdigit(c)    //c是数字

    isgraph(c)    //c不是空格,且可打印

    islower(c)    //判断是否小写

    isprint(c)    //判断是否可打印字符

    ispunct(c)    //判断是否标点符号

    isspace(c)   //判断是否空格

    isupper(c) //判断是否大写

    isxdigit(c)   //判断是否是16进制数

    tolower(c)    //返回小写

    toupper(c)    //返回大写

7.虽然可以对vector预先分配内存,但更有效的方式是,先初始化一个空的vector,然后动态的增加元素

8.for(vector<int>::size_t ype ix = 0; ix != ivec.size();++i)

    优先选用!=而不是<来编写循环条件,习惯在循环内每次调用size,防止动态增长,从而漏掉了某些元素,inline运行时代价比较小的

9.必须是已存在的元素,才能进行下标索引,vector下标操作不会添加任何元素

10.倾向于使用迭代器,而不是下标操作

11.vector<T>::const_iterator    //an iterator that connot write elements

     const vector<T>::iterator     //an iterator whose value cannot change

12.标准库提供了bitset模板来进行对二进制位的操作,定义形式与vector类似,区别是,只提供长度,而不是类型

13.如果想要获取一个数的二进制表示,也可以用bitset对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值