Tất cả đều được kế thừa từ một lớp cơ sở? Tôi có phải sử dụng các mẫu không?Làm cách nào để truyền một trình tạo số ngẫu nhiên C++ 11 cho một hàm?
(tôi đề cập đến những http://www.codeguru.com/cpp/cpp/cpp_mfc/stl/article.php/c15319/)
tôi đang làm này ngay bây giờ:
typedef std::mt19937 RNG;
và sau đó
class Chooser {
public:
Chooser(RNG& rng, uint n, uint min_choices, uint max_choices):
Nói cách khác, tôi đi tham khảo để RNG . Làm thế nào tôi sẽ vượt qua trong một máy phát điện tùy ý?
Ngoài ra, tôi nhận ra đây có thể là một câu hỏi khác, nhưng làm thế nào để chuyển máy phát đến STL?
dường như không hoạt động.
giải pháp cho máy phát điện đi qua:
typedef std::ranlux64_base_01 RNG;
typedef std::mt19937 RNGInt;
giải pháp để đi qua để STL:
struct STL_RNG {
STL_RNG(RNGInt& rng): gen(rng) {}
RNGInt& gen;
int operator()(int n) { return std::uniform_int<int>(0, n)(gen); }
};
Theo bài viết đó, họ đã là các functors nên bạn đã sẵn sàng. Có chuyện gì vậy? – Potatoswatter
Chúng tôi có thể sẽ cung cấp thông tin cụ thể và hữu ích hơn nếu chúng tôi biết mục tiêu của bạn. – GManNickG
Cụ thể, bạn muốn máy phát của mình khác nhau như thế nào và lỗi trình biên dịch bạn nhận được cho 'random_shuffle' là gì? – Potatoswatter