在Ubuntu上使用C++ STL(Standard Template Library)库非常简单,因为这些库已经预装在大多数Linux发行版中。以下是如何在Ubuntu上使用C++ STL库的步骤:
打开终端: 打开你的Ubuntu系统的终端。
创建或打开C++源文件:
使用文本编辑器(如nano、vim或gedit)创建一个新的C++源文件,或者打开一个已有的文件。例如,使用nano编辑器创建一个名为main.cpp
的文件:
nano main.cpp
编写C++代码:
在源文件中编写你的C++代码,并包含必要的STL头文件。例如,如果你想使用vector
和iostream
,你的代码可能看起来像这样:
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
编译代码: 使用g++编译器编译你的C++代码。在终端中输入以下命令:
g++ -o myprogram main.cpp
这里,-o myprogram
指定了输出的可执行文件的名称为myprogram
。
运行程序: 编译成功后,运行生成的可执行文件:
./myprogram
你应该会看到输出:
1 2 3 4 5
容器:
vector
:动态数组list
:双向链表deque
:双端队列stack
:栈queue
:队列priority_queue
:优先队列map
:关联数组(红黑树)set
:集合unordered_map
:无序关联数组unordered_set
:无序集合算法:
sort
:排序search
:搜索count
:计数find
:查找transform
:转换for_each
:遍历map
和sort
以下是一个使用map
和sort
的示例代码:
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
int main() {
std::map<std::string, int> ageMap = {
{"Alice", 30},
{"Bob", 25},
{"Charlie", 35}
};
// 将map中的元素复制到vector中以便排序
std::vector<std::pair<std::string, int>> vec(ageMap.begin(), ageMap.end());
// 按年龄排序
std::sort(vec.begin(), vec.end(), [](const auto& a, const auto& b) {
return a.second < b.second;
});
// 输出排序后的结果
for (const auto& p : vec) {
std::cout << p.first << " " << p.second << std::endl;
}
return 0;
}
编译并运行这个程序,你会看到按年龄排序的输出:
Bob 25
Alice 30
Charlie 35
通过这些步骤和示例,你应该能够在Ubuntu上轻松使用C++ STL库。