C++에서 deque 사용시 auto를 했을때 타입
조회수 1239회
아래의 코드에서 for문 안에 있는 it의 타입과 똑같은 것을 선언하려면 어떻해야 되나요??
typeid로 해도 제대로 나오진 않네요
제 예상으로는 std::deque::iterator 인데 맞나요??
#include <iostream>
#include <deque>
#include <typeinfo>
using namespace std;
int main(){
deque<int> dep;
dep.push_back(10);
int nSum=0;
for(auto it = dep.begin(); it != dep.end(); it++){
nSum += (*it);
cout << typeid(it).name() << endl;
}
cout << nSum <<endl;
return 0;
}
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
std::deque<int>::iterator it
와 같이 type을 정의하시면 됩니다.deque의 begin의 정의를 보니 나오네요.
// deque::begin #include <iostream> #include <deque> int main () { std::deque<int> mydeque; for (int i=1; i<=5; i++) mydeque.push_back(i); std::cout << "mydeque contains:"; std::deque<int>::iterator it = mydeque.begin(); while (it != mydeque.end()) std::cout << ' ' << *it++; std::cout << '\n'; return 0; }
댓글 입력