2016-06-06 1 views
3

3 호에 문제가 생겼습니다. "std :: vector :: push_back (int *) const에 대한 호출과 일치하는 함수가 없습니다."- 누군가가이 문제가 어디에서오고 어떻게 해결할 수 있는지 설명 할 수 있습니까? 그것?"일치하는 함수 호출이 없습니다 ..."이 오류는 어디에서 발생하며 어떻게 해결할 수 있습니까?

for(int i = 1; i < 7; i++){ 
    for(vector< vector<int> >::const_iterator it = x.begin(); it < x.end(); it++){ 
     it->push_back(i); 
    } 
} 
+4

빌드 오류에 대한 질문을 게시 할 때 copy-paste를 사용하여 질문 본문에 * actual * 오류를 포함시켜 완성 된 (그리고 편집되지 않은) 빌드 로그 (정보 메모 및 메시지 포함)를 표시하십시오. 또한 가능한 경우 문제를 보여주고 관련된 모든 변수의 선언을 보여 주거나 적어도 표시하는 [Minimal, Complete, and Verifiable Example] (http://stackoverflow.com/help/mcve)을 만들어보십시오. [좋은 질문을하는 법을 읽으십시오] (http://stackoverflow.com/help/how-to-ask)를 원할 수도 있습니다. –

답변

6

const_iterator을 사용하여 반복합니다. 정의에 따라 const_iterator을 수정할 수 없습니다. 당신은 현대의 C++가 쓰기 쉽게 생각하지 않습니다

for (auto &x_vector: x) 
    x_vector.push_back(i); 

을 : 더 나은, 당신은 현대 C++ 11 이상을 사용해야

for(vector< vector<int> >::iterator it = x.begin(); it != x.end(); it++){ 
     it->push_back(i); 

을 또는 : 대신 iterator 비 const를 사용 이해해?

+0

오른쪽. 작은 두뇌 딸꾹질; 수정 됨. –

관련 문제