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