C++에서 deque 사용시 auto를 했을때 타입


아래의 코드에서 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;
}
  • 2016년 09월 16일에 작성됨
    학생이고 프로그래밍 IT 전 분야에 걸쳐 관심을 가지고 싶습니다.

조회수 97


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;
}
  • 2016년 09월 19일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close