В моей программе у меня есть вектор вектора целых чисел.Теперь я хочу взять один вектор из вектора векторов и манипулировать им в другом контейнере векторов, но я получаю ошибку ...
|error: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >' to non-scalar type 'std::vector<int, std::allocator<int> >' requested|
Пример того, что я пытаюсь сделать, заключается в следующем....
#include <vector>
using namespace std;
vector<vector<int> > k (13,5);
void some_funct() {
vector<int> new_v (k[2].begin(), k[2].end()); //This line is what throws the error
//here I do some stuff with new_v (e.g. sort it)
}
Я не уверен, что я делаю неправильно.Я попробовал несколько вещей, таких как назначение итераторов begin () и end () константным типам итераторов ... vector<int>::const_iterator it = k[2].begin();
, но это тоже не сработало.
Это должно сработать (потому что k [x]был бы вектор) но я не знаю, что идет не так.Любая помощь приветствуется!
РЕДАКТИРОВАТЬ:
После пересмотра моего кода, я заметил, что на самом деле произошла ошибка.Вместо того, чтобы делать vector<int> new_v (k[2].begin(),k[2].end());
, я сделал vector<int> new_v = (k[2].begin(),k[2].end());
.
Я хотел бы поблагодарить Роб за то, что он дал мне инициативу скопировать и вставить мой код в SO, где я заметил свою ошибку.
Спасибо за помощь!