从常量变量复制向量
Copy vectors from constant variables
我正在编写一个函数,我需要尊重以下接口:
double logDensity(double x, PDFType type,
std::vector<std::vector<double const *> > const ¶meters,
double const *lower, double const *upper) const;
我需要将parameters
向量在这个函数中分成两个向量
vector<double> f = (parameters[0]);
vector<double> t = (parameters[1]);
然而,这段代码导致了这些错误消息:
DPwexp.cc: In member function 'double pwexponential::DPwexp::logDensity(double, PDFType, const std::vector<std::vector<const double*> >&, const double*, const double*) const':
DPwexp.cc:38:38: error: conversion from 'const std::vector<const double*>' to non-scalar type 'std::vector<double>' requested
vector<double> f = (parameters[0]);
^
将这两个向量复制到函数内的新变量的最佳方法是什么?
谢谢!
如果参数由const&
传递,则不打算在函数内部更改它们。为什么需要复制它们?原型假设您将使用参数的值而不更改。
const vector<double const*>& f = (parameters[0]);
const vector<double const*>& t = (parameters[1]);
您可以使用:
// Create f with the right number of elements.
std::vector<double> f(parameters[0].size());
// Use std::transform to convert pointers to double and
// store them in f.
std::transform(parameters[0].begin(), parameters[0].end(),
f.begin(), [](double const* in) { return *in; });
// Similarly for t.
std::vector<double> t(parameters[1].size());
std::transform(parameters[1].begin(), parameters[1].end(),
t.begin(), [](double const* in) { return *in; });
相关文章:
- 将指向给定子类的指针从一个向量复制到另一个向量
- 将字符向量复制到另一个向量
- 将shared_ptr的向量复制到抽象基的派生类
- 将一种数据类型的向量复制到同一数据类型的结构向量中的有效方法是什么
- 自定义类对象的C++向量 - 复制构造函数已删除 - std::ifstream
- 如何在C++中将一个对象从一个向量复制到另一个向量?
- 将特征向量复制到 C 数组
- 将std ::向量复制到CV :: Mat_的行操作相同
- 将向量复制到 std::string
- 如何以相反的顺序将整个向量复制到队列中
- 按索引将类类型元素从一个向量复制到另一个 c++
- 使用迭代器将向量复制到数组中
- 为什么是非法的:将指针向量复制到指向常量的指针向量中
- 将元素从一个向量复制到另一个向量的最有效方法,给定一个不被复制的索引列表
- C++-将数据从浮点向量复制到uint8向量
- 将字符串从向量复制到字符串
- 我可以使用STD ::复制将数据的位模式从整数向量复制到一系列未签名的字符
- 将指针从一个向量复制到另一个向量;地址指出了变化
- 如何将内容从一个字符串向量复制到另一个字符串向量
- 以相反的顺序将一个向量复制到另一个向量