C++标准库主要就指STL吗?关于STL的定义,不同人理解不一。现在有人直接把 STL 定义为“the standard library”,但通常而言, STL 指的是标准库的容器、迭代器、算法这几个部分,而这远不是C++标准库的全部内容。
在C++开始标准化之时,一个名叫SGI STL的库被标准委员会投入极大关注,后来被吸收进C++标准库,主要构成 C++ 标准库的容器库(Containers library)、迭代器库(Iterators library)、算法库(Algorithms library)部分。因此后人有时就直接用 STL 指代标准库的容器、迭代器、算法这几个部分。
但是C++标准库并非只含有容器、迭代器、算法这几个部分,其他的还有每个新手都会用到的输入输出库(Input/output library,iostream、fstream都属于这里),以及字符串库(Strings library)、异常诊断库(Diagnostics library,包括 std::logic_error、std::runtime_error等异常类,assert这样的工具也属于这里)、数值运算库(Numerics library,包括 std::complex 以及相关的复数运算,随机数生成等)、语言支持库(Language support library)、Localization library等,以及C++11加入的正则表达式库(Regular expressions library)、原子操作库(Atomic operations library)、线程支持库(Thread support library),和不好归类的“通用工具库”(General utilities library)等
显然我们不能说“容器、迭代器、算法”就是C++标准库的全部,把“容器、迭代器、算法”说成C++标准库的主要部分恐怕也是有问题的
学习C++,就学习STL库好,还是boost库好?1.STL是对基本数据结构算法的实现。BOOST是对STL的扩充,它加入了的智能指针,图操作等等很多的
模块。
2.这两个库都是在C++标准委员会的指导下制定的。STL包含了常用的算法和集合类型,并采用了泛型的思想来实现。boost是对STL的扩充,是一个功能更加强大,更实用的库。所以作为初学者,还是先掌握STL好,需要写应用性程序时,再研究boost库。
H20-1124现代墙饰挂件组合
C++中的STL标准库到底该不该用首先,C++搞的不熟,不好说C++的STL好坏。(STL在C++中的好坏)
其次,如果换C,STL能做的事情,C里面一样可以很快做出来。
再次,STL和C的#define很像,经常被人喷,也经常被对应对高手熟练使用。
最后,如果涉及到底层或系统级的代码,最好不要用STL,虽然对C++不熟练,但至少知道STL生成的东西(优点所在),不是你可控的东西(也就是缺点)。