Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么我得到类型为‘;的引用的初始化无效;const-vec&'; 介绍_C++ - Fatal编程技术网

C++ 为什么我得到类型为‘;的引用的初始化无效;const-vec&'; 介绍

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};

我使用库版本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};
   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允许您这样做(我不知道库)。

A
const-Vec&
不是
const-std::vector&
,所以参数不匹配。

A
const-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);