std :: vector push_back 메서드를 사용하여 Node 개체를 템플릿 Node 개체를 저장하는 벡터에 삽입하려고합니다. 내가 믿는 점점 오류 push_back 메서드에 대해 사용하고있는 입력 올바른 유형이 아니라고 말하는 것입니다? 누군가 제게 이것을 설명해 주시겠습니까?std :: vector push_back 오류
답변
오류 메시지에 의해 판단, 그것은 v
(클래스 멤버, 생성자가 아닌 이상하고 무의미한 지역 변수)가 vector<Node<T>>
을해야 할 때 vector<int>*
선언 (혹은 vector<T>*
)처럼 보인다.
오른쪽, 내가 사용하는 테스트 케이스 때문에 벡터
@ user2932450 : 그렇다면'int 0122 '를 저장할 때'Node
노드
'벡터> v;'는 벡터를 만드는 데 충분합니다. 여기에 새로울 필요가 없습니다. 로컬 변수가 생성됩니다. 당신의지도와 동일합니다. 클래스 멤버 인 경우에는 생성자에 다시 넣을 필요가 없습니다. 아무 목적도 가지고 있지 않습니다. –
가장 좋은 방법은 간단한 예제를 게시하여 클래스 정의가 어떻게 생겼는지 추측 할 필요가 없도록하는 것입니다. 생성자는 상당히 잘못된 것처럼 보입니다. 멤버 변수를 초기화하는 것은 이니셜 라이저 목록을 사용한다는 것을 의미하므로 즉시 범위를 벗어나는 새 변수를 만들지 마십시오. –
좋아, 그래서 무의미한 벡터와 생성자에서 만든지도를 제거했지만 여전히 동일한 오류가 발생합니다. – user2932450