温馨提示×

C++ Linux环境中如何使用STL

小樊
96
2025-05-18 10:44:40
栏目: 编程语言

在Linux环境下使用C++ STL(Standard Template Library,标准模板库)主要涉及以下几个步骤:

1. 安装C++编译器

确保你的Linux系统上安装了C++编译器,通常是g++。你可以使用以下命令来安装它:

sudo apt update
sudo apt install g++

2. 创建C++源文件

使用文本编辑器创建一个新的C++源文件,例如main.cpp

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};

    // 使用STL算法排序
    std::sort(vec.begin(), vec.end());

    // 输出排序后的向量
    for (int num : vec) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    return 0;
}

3. 编译C++程序

使用g++编译器编译你的C++程序。在终端中运行以下命令:

g++ -o myprogram main.cpp

这会生成一个名为myprogram的可执行文件。

4. 运行程序

在终端中运行生成的可执行文件:

./myprogram

你应该会看到输出:

1 1 2 3 3 4 5 5 5 6 9 

常用的STL容器和算法

容器

  • vector: 动态数组
  • list: 双向链表
  • deque: 双端队列
  • stack: 栈
  • queue: 队列
  • priority_queue: 优先队列
  • map: 关联数组(红黑树实现)
  • unordered_map: 哈希表实现的关联数组
  • set: 集合(红黑树实现)
  • unordered_set: 哈希表实现的集合

算法

  • sort: 排序
  • search: 查找
  • count: 计数
  • find: 查找元素
  • transform: 转换元素
  • for_each: 对每个元素执行操作

示例:使用mapset

#include <iostream>
#include <map>
#include <set>

int main() {
    std::map<std::string, int> ageMap = {{"Alice", 30}, {"Bob", 25}, {"Charlie", 35}};
    std::set<int> uniqueAges;

    // 将map中的年龄插入到set中
    for (const auto& pair : ageMap) {
        uniqueAges.insert(pair.second);
    }

    // 输出set中的元素
    for (int age : uniqueAges) {
        std::cout << age << " ";
    }
    std::cout << std::endl;

    return 0;
}

编译并运行这个程序:

g++ -o myprogram main.cpp
./myprogram

输出:

25 30 35 

通过这些步骤和示例,你应该能够在Linux环境下熟练使用C++ STL。

0