C/C++学习笔记-标准库类型
2017-12-06 16:54
351 查看
——————警告自己,当你在年纪轻轻就无所事事的时候,那么你就“危险”了。上坡路是很累的,当你觉得轻松的时候,那么你便是在走下坡路。出自《沃兹基索德》
个
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中字符的处理函数如下表://字符的处理而不是字符串
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();
string str("1100");
bitset<32> bitvec(str);
bitvec位模式中第2位和第3位位置为1,也就是说,string对象和bitset对象之间是反向转化的,当用string对象初始化bitset对象时,顺序是相反的。
个
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() | 如果参数是字母数字,即字母或数字,该函数返回true |
isalpha() | 如果参数是字母,该函数返回真 |
isblank() | 如果参数是空格或水平制表符,该函数返回true |
iscntrl() | 如果参数是控制字符,该函数返回true |
isdigit() | 如果参数是数字(0~9),该函数返回true |
isgraph() | 如果参数是除空格之外的打印字符,该函数返回true |
islower() | 如果参数是小写字母,该函数返回true |
isprint() | 如果参数是打印字符(包括空格),该函数返回true |
ispunct() | 如果参数是标点符号,该函数返回true |
isspace() | 如果参数是标准空白字符,如空格、进纸、换行符、回车 、水平制表符或者垂直制表符,该函数返回true |
isupper() | 如果参数是大写字母,该函数返回true |
isxdigit() | 如果参数是十六进制的数字,即0~9、a~f、A~F,该函数返回true |
tolower() | 如果参数是大写字符,则返回其小写,否则返回该参数 |
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流 |
相关文章推荐
- c++学习笔记--C++Primer第4版--标准库类型string
- C++学习笔记--标准库类型(vector,iterator,bitset)(三)
- C++ 学习笔记 1.0 : 基本语言(变量和基本类型,标准库类型,表达式,语句,函数,标准IO库)
- C++学习笔记--标准库类型(vector,iterator,bitset)(一)
- 【C++学习笔记】标准库类型string
- C++学习笔记--标准库类型(vector,iterator,bitset)(二)
- c++学习笔记--C++Primer第4版--标准库类型vector
- C++ Primer学习笔记:C++ 常用标准类型小结
- 【C++学习笔记】标准库类型vector
- c++ 学习笔记之复合数据类型
- C++ 入门笔记2--标准库类型
- C++ 学习笔记(2)变量和基本类型(复合类型:引用、指针)、const、constexpr、typedef(using)、auto、decltype
- C++学习笔记,显示类型强制转换,关键字static_cast
- C++学习笔记-const对象,类型别名,auto和decltype
- c++学习笔记--显示类型转换
- c++学习笔记——一种非法的类型转换
- 【菜鸟C++学习笔记】27.通过operator关键字进行类型转换
- C++学习笔记之auto类型说明符
- 【C++ Primer学习笔记】第3章:标准库类型
- 【C++学习笔记】复合类型和const限定符