我是靠谱客的博主 粗暴河马,最近开发中收集的这篇文章主要介绍C++ 算法包,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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++ 算法包所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部