第三章 标准库类型

来源:互联网 发布:网络教育几月交学费 编辑:程序博客网 时间:2024/06/08 13:16

3.1命名空间的using声明

语法:using namespace :: name

例如:

#include<iostream>

using namespace std;//或者using std::cin;

3.2标准库string 类型

1string 类型支持长度可变的字符串

 

2)初始化的方式:

string s1;

string s2(s1);

string s3(“loving u~”);

string s4(n,’q’);

 

3)输入输出

cin>>stringMenber;//不包括空格和换行符 例如:  hello world  ->hello

while(getline(cin,stringMember));//保存当行信息直到换行符为止

 

4)存放stringMember.size()返回值的应该是string::size_type类型,不是int.所以对于stringMember[index]的索引index最好也是使用string:: size_type类型。

 

处理单独字符

#include<cctype>

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

isalpha(c);//字母

iscntrl(c);//控制字符

isdigit(c);//数字

islower(c);//小写

isgraph(c);//不是空格但是能打印

isprint(c);//可以打印

ispunct(c);//是标点

isspace(c);//是空白字符

isupper(c);//大写

isxdigit(c);//十六进制

tolower(c);//返回当前字母的小写

toupper(c);//返回大写

33标准库vector类型

1)头文件

#include<vector>

using std::vector;

vector<int> a;

 

2)初始化:

vector<T> v1;

vector<T> v2(v1);

vector<T> v3(n,i);

vector<T> v4(n);

 

3)虽然可以初始化元素个数,但是更加有效的方法是动态增加元素(push_back)

 

4size()的返回类型同string 类似,是vector::size_type

3.4 迭代器简介

1)使用方法

vector<int>::iterator iter;

*iter=0;//ivec[当前index]=0;

iter++;//即索引下一个元素

 

2ivec.end()不指向具体的元素,只是一个flag

 

3vector<int>::const_iterator iter;//只能看不能写

 

4)迭代器可以进行加减操作,由于可能出现负数,结果类型为:diffence_type

任何改变容器长度的操作都会使已存在的迭代器失效

35标准库bitset类型

1)头文件

#include<bitset>

using std::bitset;

 

2)初始化

bitset<32> bitvec;//长度32

bitset<32> b(u);//存放的是u长整形

bitset<32> b(s);//存放s string

bitset<32> b(s,pos,n);// pos开始的sn个副本

 

举例子:

bitset<16> bitvec1(0xffff);//正好

bitset<32> bitvec3(0xffff);//正好后16位都是0

string a(“1100”);

bitset<32> bitvec2(a);//2,3位是0

 

3)函数:

any();//是否有1

none();//时候都是0

count();//有几个1,返回类型是size_t 头文件是cstddef

test()测试某一位是不是1

to_ulong();//返回整形

直接<<输出的是2进制数