У меня есть 2D-вектор, содержащий 138 векторов. Мне нужно разбить каждый из 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 раз. My templateVector - это вектор, содержащий 138 векторов "vec", каждый из которых имеет 5632 удвоения. Мой запросВектор содержит 5 632 удвоения.
Заранее спасибо за вашу помощь.
Ваш петля outter не нужна (и является причиной, по которой вы видите 138 раз для каждого вектора), а внутренний цикл for-range излишне копирует векторы.
Просто выполните:
for(auto& vec : templateVector){
cout << "\nscalar_product: Index[" << i <<"] " << face.scalar_product(vec, queryVector);
}