2010-07-15 32 views
0

int num = 0; list :: iterator it; (it = binary.const_iterator; it!= binary.end(); ++ it){if it =='1'){ abc.push_back(copyoflist.at(num)); } num ++; }在C++中使用List Iterator無效

這裏二進制被定義爲列表二進制; copyoflist是一個char類型的向量。

我收到此錯誤: 無效使用「的std ::名單> ::爲const_iterator」 上線

for(it = binary.const_iterator; it !=binary.end(); ++it) 

現在無法弄清楚什麼錯誤。有人可以幫我嗎 ?

+0

你的意思是「binary.begin()」而不是「binary.const_iterator」嗎? – AraK 2010-07-15 16:05:05

+0

對不起傢伙......看起來像我需要一些睡眠......我怎麼可以滑倒這一個! ... – 2010-07-15 16:06:31

回答

3

const_iterator是一個類型,而不是一個屬性。你會使用這樣的:

list<char>::const_iterator it; 
for(it = binary.begin(); it != binary.end(); ++it) 
3

您需要:

for (it=binary.begin(); it != binary.end(); ++it) 
+0

+1打我6秒。 – 2010-07-15 16:05:44

+0

他打了我一分鐘,但只是因爲我停下來修復問題的格式.... – 2010-07-15 16:07:24

+0

@James Curran:因爲FGITW,也許你需要先回答,然後解決問題。 8v)我+你的答案也是。 – 2010-07-15 16:11:05

2

vector<T>::const_iterator就像vector<T>::iterator一個類型。當你聲明迭代器時,你可以使用其中一個或另一個,這取決於你在循環中需要做什麼。您始終使用begin()end()或反向等價物進行初始化和條件。

int num = 0; 
list<char>::const_iterator it; 
for(it = binary.begin(); it !=binary.end(); ++it) { 
    if(*it == '1') { 
    abc.push_back(copyoflist.at(num)); 
    } 
    num++; 
} 
相關問題