我正在编写一个需要遵循以下接口(interface)的函数:
double logDensity(double x, PDFType type,
std::vector<std::vector<double const *> > const ¶meters,
double const *lower, double const *upper) const;
我需要将那个 parameters
vector 拆分成这个函数内的两个 vector :
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]);
^
将这两个 vector 复制到函数内的新变量的最佳方法是什么?
谢谢!
最佳答案
如果参数由 const&
传递,则不打算在函数内部更改它们。为什么您需要复制它们?该原型(prototype)假设您将使用参数值而不更改。
const vector<double const*>& f = (parameters[0]);
const vector<double const*>& t = (parameters[1]);
关于c++ - 从常量变量复制 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31932859/