概述
for_each
#include <iostream>
#include <vector>
#include <algorithm>
class __F {
public:
void operator() (int __first) {
std::cout << "自定义一元谓词:" << __first << std::endl;
}
};
int main() {
std::vector<int> vectorVar;
vectorVar.insert(vectorVar.begin(), 1);
vectorVar.insert(vectorVar.begin(), 2);
vectorVar.insert(vectorVar.begin(), 3);
std::for_each(vectorVar.begin(), vectorVar.end(), __F());
return 0;
}
transform
#include <iostream>
#include <vector>
#include <algorithm>
class __unary_op {
public:
int operator() (const int __first) {
return __first + 100;
}
};
int main() {
std::vector<int> vectorVar;
vectorVar.insert(vectorVar.begin(), 1);
vectorVar.insert(vectorVar.begin(), 2);
vectorVar.insert(vectorVar.begin(), 3);
// 方式1
std::transform(vectorVar.begin(), vectorVar.end(), vectorVar.begin(), __unary_op());
for (std::vector<int>::iterator iteratorVar = vectorVar.begin(); iteratorVar != vectorVar.end(); iteratorVar++) {
std::cout << "方式1:" << *iteratorVar << std::endl;
}
// 方式2
std::vector<int> res;
res.resize(vectorVar.size());
std::transform(vectorVar.begin(), vectorVar.end(), res.begin(), __unary_op());
for (std::vector<int>::iterator iteratorVar = res.begin(); iteratorVar != res.end(); iteratorVar++) {
std::cout << "方式2:" << *iteratorVar << std::endl;
}
return 0;
}
find
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vectorVar;
vectorVar.insert(vectorVar.begin(), 1);
vectorVar.insert(vectorVar.begin(), 2);
vectorVar.insert(vectorVar.begin(), 3);
std::vector<int>::iterator iteratorVar = std::find(vectorVar.begin(), vectorVar.end(), 2);
if (iteratorVar != vectorVar.end()) {
std::cout << "查找到" << std::endl;
} else {
std::cout << "没找到" << std::endl;
}
return 0;
}
find_if
#include <iostream>
#include <vector>
#include <algorithm>
class __pred {
public:
int number;
__pred(int number) :number(number) {}
bool operator() (const int value) {
return number == value;
}
};
int main() {
std::vector<int> vectorVar;
vectorVar.insert(vectorVar.begin(), 1);
vectorVar.insert(vectorVar.begin(), 2);
vectorVar.insert(vectorVar.begin(), 3);
std::vector<int>::iterator iteratorVar = std::find_if(vectorVar.begin(), vectorVar.end(), __pred(2));
if (iteratorVar != vectorVar.end()) {
std::cout << "查找到" << std::endl;
} else {
std::cout << "没找到" << std::endl;
}
return 0;
}
count
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vectorVar;
vectorVar.insert(vectorVar.begin(), 1);
vectorVar.insert(vectorVar.begin(), 2);
vectorVar.insert(vectorVar.begin(), 3);
vectorVar.insert(vectorVar.begin(), 2);
int number = std::count(vectorVar.begin(), vectorVar.end(), 2);
std::cout << "2出现的次数:" << number << std::endl;
return 0;
}
merge
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vectorVar;
vectorVar.push_back(1);
vectorVar.push_back(2);
vectorVar.push_back(3);
std::vector<int> vectorVar2;
vectorVar2.push_back(10);
vectorVar2.push_back(20);
vectorVar2.push_back(30);
std::vector<int> vectorRes;
vectorRes.resize(vectorVar.size() + vectorVar2.size());
std::merge(vectorVar.begin(), vectorVar.end(), vectorVar2.begin(), vectorVar2.end(), vectorRes.begin());
for (std::vector<int>::iterator iteratorVar = vectorRes.begin(); iteratorVar != vectorRes.end(); iteratorVar++) {
std::cout << *iteratorVar << std::endl;
}
return 0;
}
sort
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vectorVar;
vectorVar.push_back(10);
vectorVar.push_back(20);
vectorVar.push_back(30);
// 从小到大
// std::sort(vectorVar.begin(), vectorVar.end(), std::less<int>());
// 从大到小
std::sort(vectorVar.begin(), vectorVar.end(), std::greater<int>());
for (std::vector<int>::iterator iteratorVar = vectorVar.begin(); iteratorVar != vectorVar.end(); iteratorVar++) {
std::cout << *iteratorVar << std::endl;
}
return 0;
}
random_shuffle
随机打乱元素顺序。
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vectorVar;
vectorVar.push_back(10);
vectorVar.push_back(20);
vectorVar.push_back(30);
vectorVar.push_back(50);
vectorVar.push_back(8);
std::random_shuffle(vectorVar.begin(), vectorVar.end());
for (std::vector<int>::iterator iteratorVar = vectorVar.begin(); iteratorVar != vectorVar.end(); iteratorVar++) {
std::cout << *iteratorVar << std::endl;
}
return 0;
}
copy
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vectorVar;
vectorVar.push_back(10);
vectorVar.push_back(20);
vectorVar.push_back(30);
vectorVar.push_back(50);
vectorVar.push_back(8);
std::vector<int> res;
res.resize(vectorVar.size());
std::copy(vectorVar.begin(), vectorVar.end(), res.begin());
for (std::vector<int>::iterator iteratorVar = res.begin(); iteratorVar != res.end(); iteratorVar++) {
std::cout << *iteratorVar << std::endl;
}
return 0;
}
replace
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vectorVar;
vectorVar.push_back(10);
vectorVar.push_back(20);
vectorVar.push_back(30);
vectorVar.push_back(50);
vectorVar.push_back(8);
// 将一定范围内的元素,将为10的,替换为21
// std::replace(vectorVar.begin(), vectorVar.begin() + 2, 10, 21);
// 所有的元素,进行替换
std::replace(vectorVar.begin(), vectorVar.end(), 10, 21);
for (std::vector<int>::iterator iteratorVar = vectorVar.begin(); iteratorVar != vectorVar.end(); iteratorVar++) {
std::cout << *iteratorVar << std::endl;
}
return 0;
}
最后
以上就是粗暴河马为你收集整理的C++ 算法包的全部内容,希望文章能够帮你解决C++ 算法包所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复