C++标准库中 std 命名空间定义了些什么
std是C++标准库中的一个命名空间,其中定义了大量的内容,以下是一些主要的定义:
1. 输入输出流相关(iostream)
std::cout:标准输出流对象,用于将数据输出到控制台(通常是屏幕)。例如,std::cout << "Hello, World!" << std::endl;。
std::cin:标准输入流对象,用于从控制台(通常是键盘)读取数据。如std::cin >> variable;。
std::cerr:标准错误输出流,用于输出错误信息。与std::cout不同,std::cerr通常不被缓冲,输出更及时,常用于输出程序运行时的错误消息。
std::clog:标准日志流,用于输出日志信息,它是缓冲的。
2. 字符串相关(string)
std::string:这是C++中处理字符串的类。它提供了许多操作字符串的方法,如连接字符串(+运算符)、获取字符串长度(length()或size()方法)、访问字符串中的字符等。例如,std::string str = "Hello"; str = str + " World";。
3. 容器类(Containers)
std::vector:动态大小的数组容器。可以方便地添加、删除元素,并且支持随机访问。例如,std::vector<int> vec; vec.push_back(1);。
std::list:双向链表容器。适合在链表中间频繁插入和删除元素的操作。
std::map:关联容器,以键 - 值对(key - value)的形式存储数据,基于红黑树实现,提供了根据键快速查找值的功能。例如,std::map<int, std::string> myMap; myMap[1]= "One";。
std::set:集合容器,存储唯一元素,基于红黑树实现。
4. 算法(Algorithms)
在<algorithm>头文件下(这些算法在std命名空间中)定义了许多通用的算法,如std::sort用于对容器中的元素进行排序,std::find用于在容器中查找元素等。例如,std::vector<int> numbers = {3, 1, 4, 1, 5, 9}; std::sort(numbers.begin(), numbers.end());。
5. 数学函数(cmath)
在<cmath>头文件下(函数位于std命名空间)定义了各种数学函数,如std::sqrt(计算平方根)、std::sin(正弦函数)、std::cos(余弦函数)等。例如,double result = std::sqrt(16.0);。
6. 其他
还有像std::function(用于封装可调用对象)、std::thread(用于多线程编程)等众多类型和函数定义,涵盖了C++程序开发中的各种需求,包括文件处理、日期和时间操作、随机数生成等方面的功能。