首页 > 代码库 > 第三章:标准库类型
第三章:标准库类型
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
第三章:标准库类型