首页 > 代码库 > 第三章:标准库类型

第三章:标准库类型

1:标准库函数,类名等都在std命名空间中;有些类型名或函数在类里面的头文件中,故而通过头文件可以得到,或者通过“类::”得到。而很多c++的标准库中类名,不仅仅是添加头文件,还需要加std::。

2:关于c与c++的头文件区别:c的标准库都是用.h命名的,而c++是没有的;对于兼容c则c++通过cXXX来表示了,例如stdio.h就是cstdio。标准库中的头文件通过<>;非标准的用””。

3:<>和””是用于指出寻找函数,或者类等的初始路劲。用<>表示从系统的路径找也就是标准库存放路劲;””是从当前路劲找,也就是建立工程的路径。

第一:string标准库

1:c++和c的string区别---优秀说明:http://www.doc88.com/p-207512823966.html

其实质就是c种的string是char指针,而c++的string是类的指针效果;c++兼容c,在字符面值上保持了c的风格。故而用c的输入输出时不能用c++的string对象,而需要用该类对象的方法c_str方法转变为c可用的string。

2:string构造函数有:

string s1;string s2(s1);string s3("abcd");string s4(n,c);

3:操作

s.empty();
s.size()
s[n];
s1==s2;
s1=s2
s1!=s2;
s1>s2;//>=
s1<s2;//<=

4:类型:string:size_type和无符号的机器类型;

5:字符连接时必须有操作符+,且左右必须有个字符类型变量。

6:关于字符处理函数在头文件cctype。

7:类型:vector<T>::difference_type;有符号的

第二:vector类型

1:vector不是数据类型,而是类模板

2:构造函数

vector<T> v1;vector<T> v2(v1);vector<T> v3(n,i);vector<T> v4(n);

3:操作

v.empty();v.size();v.push_back;v1=v2;v1==v2;v1!=v2;v1>v2;//v1>=v2;v2<v2;//v1<=v2

4:关于值初始化,内置类用0初始化;类用默认构造函数,若没有则必须提供初始化;类若无任何构造函数则系统有合成默认构造函数。

5:习惯:习惯用!=而不是<;习惯与用s.size()因为是inline,多次调用不影响效率。

6:迭代器是比[]操作更加灵活的东西,使用频率多。重要是*,++操作,有+右操作数是常数,-操作对象。

7:内部有高效的动态对象增加

第三:bitset标准库

1:初始化构造函数

bitset<n> b;bitset<n> b(u);bitset<n> b(s);bitset<n> b(s,pos,n);

2:注意用字符串初始化时,字符的顺序和bitset顺序是相反的。

3:操作

b.any();b.none();b.count();b.size();b.set();b.set(pos);b.reset();b.reset(pos);b.flip();b.flip(pos);b.b[pos];b.tes(pos);b.to_ulong();os<<b;

4:此处用途是多个判决可以用此类存储,犹如bit图的一行。

5:类型:size_t无符号的在头cstddef

第三章:标准库类型