벡터 요소를 반복하기 위해 "for 루프"에 대해 C++ 11을 사용하려고하지만 일부 오류 (begin() 및 end() 함수가 발생합니다)가 발생합니다. 감사합니다.STL 벡터 : 요소 반복
#include <iostream>
#include <vector>
#include<iterator>
using namespace std;
template<typename TElement>
class MyClass {
private:
vector<TElement> vec;
public:
MyClass& operator+(TElement n) {
vec.push_back(n);
return *this;
}
int getS() {
return vec.size();
}
iterator begin() {//here is some problems
return vec.begin();
}
iterator end() {
return vec.end();
}
};
int main() {
MyClass<int> mm;
mm = mm + 10;
mm = mm + 9;
double avg = 0.0;
for (auto g : mm) { //begin() and end() functions error
avg += mm;
}
cout<< avg/mm.getS();
return 0;
}
오류 :
C2675 단항 '++': '표준 : : 반복자는'이 연산자 또는 미리 정의 된 연산자를 수용 할 수있는 형식으로 변환,
불법 간접를 정의하지 않습니다,
C2678 진 '! ='에는 운전자 유형 '표준 : : 반복자'의 왼쪽 피연산자를 취하는 발견,
C2955 '표준 : : 반복자': 클래스 템플릿의 사용 REQU IRES 템플릿 인수 목록,
C2514 '표준 : : 반복자': 클래스
[간단하지 않습니다] (https://stackoverflow.com/questions/8054273/how-to-implement-an-stl-style-iterator-and-avoid-common-pitfalls). –
[C++ 11 foreach 구문 및 사용자 지정 반복기]의 가능한 복제본 (http://stackoverflow.com/questions/7562356/c11-foreach-syntax-and-custom-iterator) –
항상 실제, 완전한, 오류 메시지. – renemilk