在Linux环境下使用C++ STL(Standard Template Library,标准模板库)主要涉及以下几个步骤:
确保你的Linux系统上安装了支持C++11及以上标准的编译器,如GCC或Clang。你可以使用以下命令来安装GCC:
sudo apt update
sudo apt install g++
创建一个C++源文件,例如main.cpp
,并在其中包含STL头文件。以下是一个简单的示例,展示了如何使用STL中的vector
和algorithm
:
#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;
}
使用g++编译你的C++代码。确保启用C++11或更高版本的支持:
g++ -std=c++11 -o my_program main.cpp
编译成功后,运行生成的可执行文件:
./my_program
你应该会看到输出:
1 1 2 3 3 4 5 5 5 6 9
vector
:动态数组list
:双向链表deque
:双端队列stack
:栈queue
:队列priority_queue
:优先队列map
:有序映射unordered_map
:无序映射set
:有序集合unordered_set
:无序集合sort
:排序search
:搜索count
:计数find
:查找transform
:转换for_each
:遍历unique
:去重map
和set
#include <iostream>
#include <map>
#include <set>
int main() {
std::map<std::string, int> ageMap = {
{"Alice", 30},
{"Bob", 25},
{"Charlie", 35}
};
std::set<std::string> namesSet(ageMap.begin(), ageMap.end());
// 输出map中的内容
for (const auto& pair : ageMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
// 输出set中的内容
for (const auto& name : namesSet) {
std::cout << name << std::endl;
}
return 0;
}
通过以上步骤,你可以在Linux环境下轻松使用C++ STL。熟悉STL的容器和算法可以大大提高你的编程效率和代码质量。