从2D矢量中分离出一个矢量

时间:2014-12-06 02:58:42

标签: c++ c++11 vector

我有一个包含138个向量的2D向量。我需要打破138个向量中的每一个以计算点积。我有一个工作点产品功能,但我很难从我最初的2D矢量中分离出各个矢量。这就是我所拥有的:

for (unsigned i = 0u; i != templateVector.size(); ++i) {
    for(vector<double> vec : templateVector){
       // cout << face.quickSort(vec, 0.0, 9.0);
     cout << "\nscalar_product: Index[" << i <<"] " << face.scalar_product(vec, queryVector);
    }
     std::cout << "\n";

}

最终打印每个矢量(索引i)的点积138次。我的templateVector是包含138个“vec”向量的向量,每个向量有5,632个双精度数。我的queryVector也包含5,632个双打。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你的 outter 循环是不必要的(这就是为什么你看到每个向量的输出的138倍的原因),你内部的for-range循环不必要地复制向量。

简单地说:

for(auto& vec : templateVector){
 cout << "\nscalar_product: Index[" << i <<"] " << face.scalar_product(vec, queryVector);
}