- UID
- 2
- 积分
- 2903567
- 威望
- 1401815 布
- 龙e币
- 1501752 刀
- 在线时间
- 13440 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2025-1-30
|
C++基础知识【算法库 <algorithm>】
C++ 标准库中的 <algorithm> 头文件提供了一组用于操作容器(如数组、向量、列表等)的算法。这些算法包括排序、搜索、复制、比较等,它们是编写高效、可重用代码的重要工具。
<algorithm> 头文件定义了一组模板函数,这些函数可以应用于任何类型的容器,只要容器支持迭代器。这些算法通常接受两个或更多的迭代器作为参数,表示操作的起始和结束位置。
语法
大多数 <algorithm> 中的函数都遵循以下基本语法:- algorithm_name(container.begin(), container.end(), ...);
复制代码 这里的 container 是一个容器对象,begin() 和 end() 是容器的成员函数,返回指向容器开始和结束的迭代器。
实例
1. 排序算法
函数:sort
定义:对容器中的元素进行排序。
语法:- sort(container.begin(), container.end(), compare_function);
复制代码 其中 compare_function 是一个可选的比较函数,用于自定义排序方式。
实例- #include <algorithm>
- #include <vector>
- #include <iostream>
- int main() {
- std::vector<int> numbers = {5, 2, 9, 1, 5, 6};
- std::sort(numbers.begin(), numbers.end());
- for (int num : numbers) {
- std::cout << num << " ";
- }
- std::cout << std::endl;
- return 0;
- }
复制代码 输出结果:
1 2 5 5 6 9
2. 搜索算法
函数:find
定义:在容器中查找与给定值匹配的第一个元素。
语法:- auto it = find(container.begin(), container.end(), value);
复制代码 如果找到,it 将指向匹配的元素;如果没有找到,it 将等于 container.end()。- #include <algorithm>
- #include <vector>
- #include <iostream>
- int main() {
- std::vector<int> numbers = {1, 2, 3, 4, 5};
- auto it = std::find(numbers.begin(), numbers.end(), 3);
- if (it != numbers.end()) {
- std::cout << "Found: " << *it << std::endl;
- } else {
- std::cout << "Value not found." << std::endl;
- }
- return 0;
- }
复制代码 输出结果:
Found: 3
3. 复制算法
函数:copy
定义:将一个范围内的元素复制到另一个容器或数组。
语法:- copy(source_begin, source_end, destination_begin);
复制代码- #include <algorithm>
- #include <vector>
- #include <iostream>
- int main() {
- std::vector<int> source = {1, 2, 3, 4, 5};
- int destination[5];
- std::copy(source.begin(), source.end(), destination);
- for (int i = 0; i < 5; ++i) {
- std::cout << destination[i] << " ";
- }
- std::cout << std::endl;
- return 0;
- }
复制代码 输出结果:
1 2 3 4 5 |
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|