2010-07-15 2 views
0

int num = 0; list :: iterator it; for (it = binary.const_iterator; it! = binary.end(); ++ it) { if (* it == '1') { abc.push_back (copyoflist.at (num)); } num ++; }C++에서 List Iterator를 잘못 사용했습니다.

여기서 이진은 목록 바이너리로 정의됩니다. copyoflist는 char 유형 벡터입니다.

나는이 오류가 무엇입니까 : 라인에서의 잘못된 사용 '표준 : : 목록> :: const_iterator를' 을

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

잘못 무슨 일이 일어나고 있는지 알아낼 수 없습니다입니다. 누군가 나를 도울 수 있습니까?

+0

"binary.const_iterator"대신 "binary.begin()"을 의미합니까? – AraK

+0

죄송합니다 얘들 아 ... 잠이 좀 필요해. 어떻게 이걸 풀 수 있을까? ... –

답변

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 초 동안 나를 때리는 +1. –

+0

그는 질문의 형식을 고치기 위해 멈추었 기 때문에 분만에 나를 때렸습니다. –

+0

@James Curran : FGITW 덕분에 처음에는 대답하고 질문을 수정해야합니다. 8v) 나는 당신의 대답도 +1했다. –

2

vector<T>::const_iteratorvector<T>::iterator 같은 유형입니다. 루프에서 수행해야하는 작업에 따라 반복기를 선언 할 때 둘 중 하나를 사용합니다. 초기화 및 조건부에 항상 begin(), end() 또는 그 역의 등가물을 사용합니다.

관련 문제