在我的程序工作,我有整數的向量的向量。現在,我想從向量的向量採取一個載體,有它在另一個載體容器操作,但我得到的錯誤...迭代器載體媒介的失敗,一個1-d矢量
|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()迭代器分配給const迭代器類型...... 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());
。
我要感謝Rob因爲我主動將我的代碼複製並粘貼到SO中,我注意到了我的錯誤。
謝謝你的幫助!
你確定錯誤不在上面的行嗎?應該是,'std :: vector> k(13,std :: vector (5));'? –
不,我的程序是相當複雜的,有噸 –
在任何情況下示出的兩條線之間的代碼,'的std ::矢量 new_v(K [2]);'應該工作一樣好。 –