7. 常用函数-算法库
发布时间:
简述 #include< algorithm>
语法
大多数
js
algorithm_name(container.begin(), container.end(), ...);
这里的 container 是一个容器对象,begin() 和 end() 是容器的成员函数,返回指向容器开始和结束的迭代器。
函数 | 描述 |
---|---|
type max (type a,type b) | 【比较】a和b返回其中较大者 |
type min (type a, type b) | 【比较】a和b返回其中较小者 |
sort(container.begin(), container.end(), compare_function); | 【排序算法】container 是一个容器对象,begin() 和 end() 是容器的成员函数,返回指向容器开始和结束的迭代器 |
auto find(container.begin(), container.end(), value) | 【查找算法】,it 将指向匹配的元素;如果没有找到,it 将等于 container.end()。 |
copy(source_begin, source_end, destination_begin); | 【复制算法】将一个范围内的元素复制到另一个容器或数组 |
bool result = equal(first1, last1, first2); | 【比较算法】比较两个容器或两个范围内的元素是否相等 |
bool result = equal(first1, last1, first2, compare_function); | 【比较算法】比较两个容器或两个范围内的元素是否相等 |
实例
1. 排序算法sort
对容器中的元素进行排序。
js
#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;
}
输出结果:
js
1 2 5 5 6 9
2. 搜索算法find
定义:在容器中查找与给定值匹配的第一个元素。
语法:
js
auto it = find(container.begin(), container.end(), value);
js
#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;
}
输出结果:
js
Found: 3
3. 复制算法copy 定义:将一个范围内的元素复制到另一个容器或数组。 语法:
js
copy(source_begin, source_end, destination_begin);
js
#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;
}
输出结果:
js
1 2 3 4 5
- 比较算法 函数:equal
定义:比较两个容器或两个范围内的元素是否相等。
语法:
js
bool result = equal(first1, last1, first2);
或
bool result = equal(first1, last1, first2, compare_function);
js
#include <algorithm>
#include <vector>
#include <iostream>
int main() {
std::vector<int> v1 = {1, 2, 3, 4, 5};
std::vector<int> v2 = {1, 2, 3, 4, 5};
bool are_equal = std::equal(v1.begin(), v1.end(), v2.begin());
std::cout << (are_equal ? "Vectors are equal." : "Vectors are not equal.") << std::endl;
return 0;
}
输出结果:
js
Vectors are equal.