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-的向量。-您完全正确,我刚刚添加了索引,一切正常。非常感谢!!!我完全监督了这件事……我认为最好结束这个问题……这对任何人都没有帮助,但谢谢你们