网络宝典
第二套高阶模板 · 更大气的阅读体验

C++标准库有哪些 使用技巧与常见问题解析

发布时间:2025-12-15 19:13:43 阅读:188 次

C++程序时,几乎没人从零开始造轮子。大部分时候,我们都在用C++标准里的现成工具。这些库就像厨房里的锅碗瓢盆,少了它们,连个简单的程序都难写。

输入输出:iostream

刚开始学C++,第一个接触的往往是 coutcin。它们来自 <iostream> 头文件,负责控制台的输入输出。比如想打印一句“Hello, World!”,就这么写:

#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

字符串处理:string

处理文本离不开字符串。C语言用字符数组,麻烦又容易出错。C++提供了 std::string,用起来顺手多了。可以直接拼接、比较、查找,不用再手动算长度。

#include <string>
#include <iostream>

int main() {
    std::string name = "小明";
    name += "喜欢编程";
    std::cout << name << std::endl;
    return 0;
}

容器:STL的核心

标准模板库(STL)是C++标准库的重头戏。它提供了一系列通用容器,比如:

  • std::vector:动态数组,自动扩容,适合大多数存储需求
  • std::list:双向链表,插入删除快
  • std::map:键值对存储,像电话簿一样查数据
  • std::set:自动去重并排序的集合

举个例子,保存几个学生的分数可以用 vector:

#include <vector>
#include <iostream>

int main() {
    std::vector<int> scores = {85, 92, 78};
    for (int s : scores) {
        std::cout << s << " ";
    }
    return 0;
}

算法:algorithm

有了数据,还得处理。 里有现成的算法,比如排序、查找、求和。不用自己写冒泡排序了,直接调用 std::sort 就行。

#include <algorithm>
#include <vector>

std::vector<int> nums = {3, 1, 4, 1, 5};
std::sort(nums.begin(), nums.end()); // 排序后变成 1,1,3,4,5

智能指针:memory

以前手动管理内存,一不小心就内存泄漏。现在有 std::unique_ptrstd::shared_ptr,对象用完自动回收,省心又安全。

日期时间:chrono

要记录程序运行多久,或者做个倒计时功能,<chrono> 提供了高精度的时间操作。比如测一段代码耗时:

#include <chrono>
#include <thread>

auto start = std::chrono::high_resolution_clock::now();
std::this_thread::sleep_for(std::chrono::milliseconds(100));
auto end = std::chrono::high_resolution_clock::now();

这些只是冰山一角。C++标准库还包括正则表达式、线程支持、异常处理、数值计算等模块。日常开发中,熟练使用这些工具,效率能提升一大截。