seecimi   4년 전

시간내서 질문글 읽어주셔서 감사합니다.


저는 auto p = minmax_element(scores.begin(),scores.end())를 통해 pair를 구해서 문제를 풀었습니다.

  1. 이때 p의 타입은 어떤 타입인지 궁금합니다. 왜 p.first가 아닌 *p.frist를 쓰는지 이해가 잘 안됩니다.
  2. 컴파일러 내에서, auto를 어떤 타입이라고 생각하고 컴파일 했는 지 알 수 있는방법이 있는지 궁금합니다. 첫번째 줄을 디버깅 해보니 p는 struct라고 나오는데, 그보다 더 정확한 타입을 알고 싶습니다.

감사합니다.

kyo20111   4년 전

http://www.cplusplus.com/reference/algorithm/minmax_element/?kw=minmax_element

에 보면  A pair with an iterator pointing to the element with the smallest value in the range [first,last) as first element, and the largest as second. 라고 나와있네요.

seecimi   4년 전

  1. first가 아닌 *p.frist를 쓰는 이유는

p의 원소가 주소값이고, *p.first는 *(p.first)를 뜻하는 거라는걸 알아서 해결했습니다.

2. auto 인 p의 타입은, pair<vector<int>::iterator, vector<int>::iterator> 였습니다. 

단순히 value가 int이니깐, pair<*int,*int> p로 선언하면 되겠구나 생각한 제 착각이였습니다.

@kyo20111

답변해주셔서 감사합니다.

댓글을 작성하려면 로그인해야 합니다.