C++ 为什么我得到类型为‘;的引用的初始化无效;const-vec&'; 介绍
我使用库版本4.3.1来计算向量的偏度。该库可从下载 可以按如下方式安装库:C++ 为什么我得到类型为‘;的引用的初始化无效;const-vec&'; 介绍,c++,C++,我使用库版本4.3.1来计算向量的偏度。该库可从下载 可以按如下方式安装库: mkdir build; cd build; cmake .. make sudo make install 源代码 我使用以下源代码来计算偏度 #include <itpp/stat/misc_stat.h> using namespace itpp; int main(int argc, char* argv[]) { vector<double> x{2,3,4,5,6};
mkdir build;
cd build;
cmake ..
make
sudo make install
源代码 我使用以下源代码来计算偏度
#include <itpp/stat/misc_stat.h>
using namespace itpp;
int main(int argc, char* argv[])
{
vector<double> x{2,3,4,5,6};
double skew = skewness (x);
return 0;
}
错误
错误:从'std::vector'类型的表达式初始化'const-vec&{aka const-itpp::vec&}'类型的引用无效
双偏斜=偏斜度(x);
^
在main.cpp中包含的文件中:3:0:
/usr/local/include/itpp/stat/misc_stat.h:336:20:注意:在传递'double-itpp::skewness(const-vec&')的参数1时
ITPP_导出双偏度(const-vec&x);
我不明白为什么我会犯这个错误
谢谢。
skewness()
似乎接受类型为const itpp::Vec&
的参数,但您给它的是一个std::vector
,它不能隐式转换为前一种类型。您需要将x
声明为itpp::Vec
类型,或者您可以显式地将x
转换为该类型的对象,前提是itpp允许您这样做(我不知道库)。skewness()
似乎接受const itpp::Vec&
类型的参数,但是您给它一个std::vector
,它不能隐式转换为前一种类型。您需要将x
声明为itpp::Vec
类型,或者您可以显式地将x
转换为该类型的对象,前提是itpp允许您这样做(我不知道库)。Aconst-Vec&
不是const-std::vector&
,所以参数不匹配。Aconst-vec&
不是const-std::vector&
,所以参数不匹配。歪斜的原型是什么?双itpp::歪斜(const-vec&x)你尝试过改变向量x{2,3,4,5,6};通过向量x{2,3,4,5,6};?歪斜的原型是什么?双itpp::歪斜(const-vec&x)你试过改变向量x{2,3,4,5,6};通过向量x{2,3,4,5,6};?
double itpp::skewness (const vec &x)
Calculate the skewness excess of the input vector x.
error: invalid initialization of reference of type ‘const vec& {aka const itpp::Vec<double>&}’ from expression of type ‘std::vector<double>’
double skew = skewness (x);
^
In file included from main.cpp:3:0:
/usr/local/include/itpp/stat/misc_stat.h:336:20: note: in passing argument 1 of ‘double itpp::skewness(const vec&)’
ITPP_EXPORT double skewness(const vec &x);