建立一个程序,测试使用至少10个STL算法函数,功能不限
时间: 2024-03-17 15:42:58 浏览: 13
好的,我会为您编写一个测试程序,该程序将使用至少10个STL算法函数,功能不限。以下是程序实现:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
int main() {
// 1. std::sort
std::vector<int> vec{2, 4, 1, 5, 3};
std::sort(vec.begin(), vec.end());
std::cout << "std::sort: ";
for (auto x : vec) {
std::cout << x << " ";
}
std::cout << std::endl;
// 2. std::transform
std::vector<int> vec2{1, 2, 3, 4, 5};
std::vector<int> result(vec2.size());
std::transform(vec2.begin(), vec2.end(), result.begin(), [](int x) { return x * x; });
std::cout << "std::transform: ";
for (auto x : result) {
std::cout << x << " ";
}
std::cout << std::endl;
// 3. std::find
auto it = std::find(vec.begin(), vec.end(), 3);
if (it != vec.end()) {
std::cout << "std::find: Found " << *it << std::endl;
} else {
std::cout << "std::find: Not found" << std::endl;
}
// 4. std::count
int count = std::count(vec.begin(), vec.end(), 3);
std::cout << "std::count: " << count << std::endl;
// 5. std::accumulate
int sum = std::accumulate(vec.begin(), vec.end(), 0);
std::cout << "std::accumulate: " << sum << std::endl;
// 6. std::max_element
auto max = std::max_element(vec.begin(), vec.end());
std::cout << "std::max_element: " << *max << std::endl;
// 7. std::min_element
auto min = std::min_element(vec.begin(), vec.end());
std::cout << "std::min_element: " << *min << std::endl;
// 8. std::unique
std::vector<int> vec3{1, 2, 2, 3, 3, 3, 4, 5, 5};
auto it2 = std::unique(vec3.begin(), vec3.end());
vec3.erase(it2, vec3.end());
std::cout << "std::unique: ";
for (auto x : vec3) {
std::cout << x << " ";
}
std::cout << std::endl;
// 9. std::reverse
std::reverse(vec.begin(), vec.end());
std::cout << "std::reverse: ";
for (auto x : vec) {
std::cout << x << " ";
}
std::cout << std::endl;
// 10. std::replace
std::replace(vec.begin(), vec.end(), 3, 0);
std::cout << "std::replace: ";
for (auto x : vec) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
```
程序中使用了10个STL算法函数,分别是:
1. `std::sort`:对一个序列进行排序。
2. `std::transform`:对一个序列进行变换。
3. `std::find`:在一个序列中查找指定元素。
4. `std::count`:统计一个序列中指定元素的个数。
5. `std::accumulate`:对一个序列进行累加。
6. `std::max_element`:查找一个序列中的最大元素。
7. `std::min_element`:查找一个序列中的最小元素。
8. `std::unique`:移除一个序列中的重复元素。
9. `std::reverse`:反转一个序列。
10. `std::replace`:替换一个序列中的指定元素。
程序输出结果如下:
```
std::sort: 1 2 3 4 5
std::transform: 1 4 9 16 25
std::find: Found 3
std::count: 1
std::accumulate: 15
std::max_element: 5
std::min_element: 1
std::unique: 1 2 3 4 5
std::reverse: 5 4 3 2 1
std::replace: 5 4 0 2 1
```
以上就是一个使用了至少10个STL算法函数的测试程序。