C/C++学习笔记-标准库类型

来源:互联网 发布:海康ddns域名取消了 编辑:程序博客网 时间:2024/05/18 04:40

——————警告自己,当你在年纪轻轻就无所事事的时候,那么你就“危险”了。上坡路是很累的,当你觉得轻松的时候,那么你便是在走下坡路。出自《沃兹基索德》


1、string类型

区别于java里面的String,首先大小写不一样。习惯java语言格式的时候需要注意。使用步骤:

        a:引入头文件<string>//注意用尖括号,因为属于系统头文件,区别于c的头文件,没有后缀“.h”;

        b:命名空间,using std::string//主要是防止名字冲突;

string操作:(简单列举一下,和Java的使用和意义基本一致)

s.empty()//判断为空;

s.size();//获取字符串字符个数

s1+s2;//拼接操作;

==//比较内容

注意的是:“hello”+“world”//error,均为右值不能拼接。此时“+”被当成加运算符,所以报错。

size()函数返回的类型最好不要用int,具体原因是int的内存太小,出错不好检错。而C++规定了size的返回类型 string::size_type;

遍历一般做法也有点区别:for(string::size_type idx = 0;idx != s.size();idx++)//区别在于size返回类型,以及判决条件(以后再讲)


string中字符的处理函数如下表://字符的处理而不是字符串

函数名称返回值isalnum()如果参数是字母数字,即字母或数字,该函数返回trueisalpha()如果参数是字母,该函数返回真isblank()如果参数是空格或水平制表符,该函数返回trueiscntrl()如果参数是控制字符,该函数返回trueisdigit()如果参数是数字(0~9),该函数返回trueisgraph()如果参数是除空格之外的打印字符,该函数返回trueislower()如果参数是小写字母,该函数返回trueisprint()如果参数是打印字符(包括空格),该函数返回trueispunct()如果参数是标点符号,该函数返回trueisspace()

如果参数是标准空白字符,如空格、进纸、换行符、回车

、水平制表符或者垂直制表符,该函数返回true

isupper()如果参数是大写字母,该函数返回trueisxdigit()如果参数是十六进制的数字,即0~9、a~f、A~F,该函数返回truetolower()如果参数是大写字符,则返回其小写,否则返回该参数toupper()如果参数是小写字母,则返回其大写,否则返回该参数


2、vector

容器vector的使用方法类似于Java的collection集合(List、Set)等,都是可以动态的将对象加到末尾。操作方法也差不多。同样和string一样,需要假如头文件以及命名空间、

        a:引入头文件<vector>//注意用尖括号,因为属于系统头文件,区别于c的头文件,没有后缀“.h”;

        b:命名空间,using std::vector//主要是防止名字冲突;

vector<string> vec;

使用vec.push_back();//将对象添加到末尾。

这里取值可以用下标的形式取值。vec[4],取的第5个元素。

迭代器

在java中遍历集合通常使用迭代器。那么容器vector也是一样。代码:

vector<string> ::iterator iter = vec.begin();

如要访问元素可用解引用的方式:*iter

实际上还有一种迭代器只使用与访问,也就是说不能修改。代码:

vector<string>::const_iterator iter = vec.begin();

3、bitset

bitset位操作,定义和上面两个一样。注意的是:对于字符串初始化bitset时,代码

string str("1100");

bitset<32> bitvec(str);

bitvec位模式中第2位和第3位位置为1,也就是说,string对象和bitset对象之间是反向转化的,当用string对象初始化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流






原创粉丝点击