gpt4 book ai didi

c++ - 如何将标准生成器传递给 STL 函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:28:34 26 4
gpt4 key购买 nike

#include <random>
#include <algorithm>
#include <vector>

int main() {
std::vector < int > a = {1, 2, 3};
std::mt19937 generator;
std::random_shuffle(a.begin(), a.end(), generator);
}

我正在尝试使用 g++ -std=c++0x 编译此代码,收到以

结尾的巨大编译器转储
/usr/include/c++/4.9.2/bits/random.h:546:7: note:   candidate expects 0 arguments, 1 provided

有什么正确的方法吗?

最佳答案

std::random_shuffle 的过载你正在尝试使用一个“RandomFunc”:

function object returning a randomly chosen value of type convertible to std::iterator_traits<RandomIt>::difference_type in the interval [0,n) if invoked as r(n)

在 C++14 中,std::random_shuffle已弃用 std::shuffle ,它需要一个生成器而不是那个“RandomFunc”。只需将函数更改为 std::shuffle .

关于c++ - 如何将标准生成器传递给 STL 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27017223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com