STL和C++标准库有什么区别?
大家好!我是一名初学C++的开发者,经常遇到“STL”和“C++标准库”这两个术语。似乎大家都把它们当作同义词使用,但我感觉它们并不完全一样。
例如,我写这样的代码:
```cpp
#include
#include
#include
int main() {
std::vector numbers = {3, 1, 4, 1, 5, 9};
std::sort(numbers.begin(), numbers.end());
for (int n : numbers) {
std::cout << n << " ";
}
return 0;
}
```
这里我使用了 `` 和 ``——我习惯称它们为STL。但 `` 和 `std::cout` 也是标准库的一部分。那么,STL只是标准库的一部分吗?还是它们是不同的东西?
网上有很多争论:有人说STL已经过时了,有人说它是C++的基础。我需要一个清晰的理解:到底什么算是STL,什么算是标准库?为什么会有这种混淆?感谢详细解答。