Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.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++ 通过值/引用传递向量并从中获取迭代器_C++_C++11_Vector_Iterator_Implicit Conversion - Fatal编程技术网

C++ 通过值/引用传递向量并从中获取迭代器

C++ 通过值/引用传递向量并从中获取迭代器,c++,c++11,vector,iterator,implicit-conversion,C++,C++11,Vector,Iterator,Implicit Conversion,我想通过值传递两个向量,并用它们做一些计算。我有点困惑为什么下面的方法不起作用。我已经花了好几个小时想弄明白了-- typedef std::vector<std::vector<int> > Matrix_t; ... void vector_product(const Matrix_t mc, const Matrix_t mp, Matrix_t& r){ std::vector<int> _mc(5); std::vector<i

我想通过值传递两个向量,并用它们做一些计算。我有点困惑为什么下面的方法不起作用。我已经花了好几个小时想弄明白了--

typedef std::vector<std::vector<int> > Matrix_t;
...
void vector_product(const Matrix_t mc, const Matrix_t mp, Matrix_t& r){
  std::vector<int> _mc(5);
  std::vector<int> _mp(5);
  _mc.insert(_mc.begin(), mc.begin(), mc.end());
  _mp.insert(_mp.begin(), mp.begin(), mp.end());
}
typedef std::向量矩阵;
...
空向量积(常数矩阵mc、常数矩阵mp、矩阵t&r){
std::vector_mc(5);
std::vector_mp(5);
_插入(_mc.begin(),mc.begin(),mc.end());
_mp.insert(_mp.begin(),mp.begin(),mp.end());
}
我也尝试先用Matrix\u t来实现这一点&而不是const Matrix\t,直到我意识到我不必在函数中更改它们,通过值传递也很好,但它也不起作用


编译器打印出一堆关于转换错误的文本。这就是我不在这里复制它的原因。

本地向量和迭代器返回的向量具有不同的值类型

迭代器返回向量,而局部向量的元素是标量整数

这些局部向量的值类型是什么?定义像

std::vector<int> _mc(5);
std::vector<int> _mp(5);

那么代码就有效了。

本地向量和迭代器返回的向量具有不同的值类型

迭代器返回向量,而局部向量的元素是标量整数

这些局部向量的值类型是什么?定义像

std::vector<int> _mc(5);
std::vector<int> _mp(5);

那么代码就是有效的。

您不能更改
const
参数吗?不是这样的。您正在尝试复制类型为
vector
int的元素带有元素
int
omg-的向量。-您完全正确,我刚刚添加了索引,一切正常。非常感谢!!!我完全监督了这一点…我认为最好结束这个问题…这对任何人都没有帮助,但谢谢你,伙计你不能更改
const
参数?不是这样的。您正在尝试复制类型为
vector
int的元素带有元素
int
omg-的向量。-您完全正确,我刚刚添加了索引,一切正常。非常感谢!!!我完全监督了这件事……我认为最好结束这个问题……这对任何人都没有帮助,但谢谢你们