C++11的结合函数可以用于std(甚至更好的mtl)载体吗?
Can C++11's bind-functions be used in an std (or even better an mtl) vector?
我正在尝试将不同的随机变量(问题是,它们不是变量,而是函数(保存到向量中:
auto dW0 = std::bind(std::normal_distribution<double>{0.0, 1}, std::default_random_engine{123456});
auto dW1 = std::bind(std::normal_distribution<double>{0.0, 1}, std::default_random_engine{123456+1000});
std::vector<decltype(dW0)> dW = {dW0, dW1};
如果我能将它们保存到 mtl-vector,那就更好了:
mtl::dense_vector<decltype(dW0)> dW = {dW0, dW1};
但是将它们保存到标准载体会有很大帮助。
bind
的结果类型可以存储在vector
中,因为C++11 20.8.9.1.2指定它是MoveConstructible
的(如果绑定函子和参数是,也可以CopyConstructible
(。
但请注意,当绑定不同的函子和参数类型时,bind
的结果类型会有所不同;并且向量中的所有对象必须具有相同的类型。在您的示例中,这很好;但是,如果您需要更大的灵活性(例如不同的发行版或引擎(,则需要存储更通用的函子类型,例如std::function
。
我不熟悉mtl::dense_vector
,但希望它对std::vector
有兼容的要求,在这种情况下也应该没问题。
相关文章:
- C++:将控制台输出存储在宏中更好吗
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 初始化具有非默认构造函数的std::数组项的更好方法
- 有没有比在库中添加一个并非由所有派生类实现的新虚拟函数更好的设计实践
- 为什么新的随机库比std::rand()更好
- 寻找一种更好的方法来表示无符号字符数组
- 哪种方法更好,性能明智
- 什么更好?返回对象指针列表?或返回指向对象列表的指针?
- 什么是更好的做法?通过指针或标识符传递类成员?
- 寻求更好地理解标准::访问
- 线程消息传递或更好:在"大师班"中访问其他班级的成员
- 有没有更好的方法来处理异常? try-catch块真的很丑
- 如何更好地检查两个 char 变量是否在一组值中?
- 有没有更好的方法对C++中的三个整数进行排序?
- 什么模板用法在阶乘中更好
- 平面缓冲区可以利用向量中的 0 吗?还是其他小波比哈尔变换更好?
- 我们应该如何使用枚举类进行索引(或者我们应该更好地避免这种情况)?
- Protobuf中重复字段的问题.使用重复字段进行序列化/反序列化的更好方法是什么?
- 比使用 s.str().c_str() 更好的表达?
- C++11的结合函数可以用于std(甚至更好的mtl)载体吗?