目录
C++ 标准库提供了大量的函数和类,用于执行各种任务,如输入输出、字符串处理、数学计算、日期时间处理、多线程等。这里将概述一些C++中常用的标准库函数,但请注意,由于标准库非常庞大,这里只能列出一些核心和常用的部分。
一、输入输出(I/O)
C++的输入输出流是C++标准库的重要组成部分,它们提供了灵活的机制来执行数据的输入和输出操作。
std::cin
:用于从标准输入(通常是键盘)读取数据。std::cout
:用于向标准输出(通常是屏幕)输出数据。std::cerr
和std::clog
:用于输出错误信息和日志信息,但std::cerr
通常不经过缓冲区,直接输出。std::ifstream
和std::ofstream
:用于文件输入和输出。
详细梳理部分见【C++】输入输出(I/O)标准库函数汇总大全-CSDN博客
二、字符串处理
C++ 标准库中的字符串处理功能主要集中在 <string>
头文件中,该头文件提供了 std::string
类,用于表示和操作字符串。此外,还有一些其他标准库函数和类可以辅助进行字符串处理,但 std::string
是最常用的
std::string
类:用于处理C++中的字符串。std::getline(std::istream& is, std::string& str)
:从输入流读取一行到字符串中。std::to_string(int val)
:将数值转换为字符串。std::stoi(const std::string& str)
:将字符串转换为整数。std::substr(size_t pos = 0, size_t len = npos) const
:从字符串中提取子串。
三、数学
<cmath>
头文件提供了数学函数,如:std::sqrt(double x)
:计算平方根。std::pow(double base, double exponent)
:计算幂。std::sin(double x)
、std::cos(double x)
、std::tan(double x)
:计算正弦、余弦和正切。std::abs(int x)
:计算绝对值(也有针对浮点数的版本)。std::round(double x)
:四舍五入到最接近的整数。
四、 容器
std::vector
:动态数组。std::list
:双向链表。std::map
和std::unordered_map
:键值对集合,std::map
按键排序,std::unordered_map
不保证顺序。std::set
和std::unordered_set
:元素集合,不允许重复元素,std::set
按键排序,std::unordered_set
不保证顺序。
五、算法
<algorithm>
头文件提供了大量的算法函数,如:std::sort(begin, end)
:对容器中的元素进行排序。std::find(begin, end, value)
:查找元素。std::for_each(begin, end, function)
:对容器中的每个元素执行操作。std::transform(begin1, end1, begin2, function)
:对容器中的每个元素应用函数,并将结果存储在另一个容器中。
六、日期和时间
<chrono>
和<ctime>
头文件提供了处理日期和时间的类和函数。std::chrono::system_clock::now()
:获取当前时间点。std::time(std::time_t*)
:获取当前时间(自1970年1月1日以来的秒数)。std::localtime
和std::gmtime
:将time_t
转换为tm
结构(包含年、月、日等)。
七、多线程
<thread>
、<mutex>
、<condition_variable>
等头文件提供了多线程编程的支持。std::thread
:表示一个线程。std::mutex
、std::lock_guard
、std::unique_lock
:用于同步,防止数据竞争。std::condition_variable
:用于线程间的条件等待和通知。
八、总结
这只是C++标准库中的一小部分功能。C++标准库非常庞大且功能丰富,涵盖了从基本输入输出到高级编程技术的各个方面。