相关疑难解决方法(0)

std :: shuffle不能用std :: list编译

我试图改组一些生成的元素列表.这是代码:

std::default_random_engine generator (10);
std::list<int> list(10);

int n = 0;
std::generate(list.begin(), list.end(), [&]{ return n++; });
std::shuffle(list.begin(), list.end(), generator);
Run Code Online (Sandbox Code Playgroud)

它没有编译.以下是错误:

/include/c++/v1/algorithm:3059:34: Invalid operands to binary expression ('std::__1::__list_iterator<int, void *>' and 'std::__1::__list_iterator<int, void *>')
main.cpp:1:10: In file included from main.cpp:1:

/include/c++/v1/random:1641:10: In file included from /bin/../include/c++/v1/random:1641:

main.cpp:37:10: In instantiation of function template specialization 'std::__1::shuffle<std::__1::__list_iterator<int, void *>, std::__1::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> &>' requested here
/include/c++/v1/iterator:622:1: Candidate template ignored: could not match 'reverse_iterator' against '__list_iterator'
/include/c++/v1/iterator:1017:1: Candidate template ignored: could not match …
Run Code Online (Sandbox Code Playgroud)

c++ shuffle list std

5
推荐指数
2
解决办法
2914
查看次数

如何在C中随机混洗链表

我有一个链接列表,我想实现一个功能:

Random_Shuffle_List (struct node **Headptr) - 输出一个列表,使每个节点从其原始位置随机移动.

请帮我一个有效的算法来实现这一目标.

c algorithm list data-structures

0
推荐指数
1
解决办法
5304
查看次数

标签 统计

list ×2

algorithm ×1

c ×1

c++ ×1

data-structures ×1

shuffle ×1

std ×1