<p></p> <p></p> <p>#include <stdio.h></p> <p>#include <vector></p> <p>#include <algorithm></p> <p>using namespace std;</p> <p> <br></p> <p>int n, t, q;</p> <p>vector<int> v[11];</p> <p> <br></p> <p>int main() {</p> <p> scanf("%d", &n);</p> <p> for(int i=0; i<n; i++) {</p> <p> scanf("%d", &t);</p> <p> v[t].push_back(i+1);</p> <p> }</p> <p> <br></p> <p> for(int i=0; i<11; i++) {</p> <p> if(v[i].size()) {</p> <p> <b><span style="color:#0000ff;"> printf("\n[%d] ", i);</span></b> </p> <p> <b><span style="color:#0000ff;"> for(int j=0; j<v[i].size(); j++)</span></b> </p> <p> <b><span style="color:#0000ff;"> printf("%d ", v[i][j]);</span></b> </p> <p> }</p> <p> }</p> <p> <span style="white-space:pre;"></span>return 0; </p> <p>}</p> <p>위 코드는 잘 돕니다. // 0부터 10까지의 수들이 입력된 위치를 벡터에 저장</p> <p>그런데, 위 코드의 파란 색 부분에 다음 코드를 넣으면 에러가 납니다;;;</p> <p> </p> <p> int lb = lower_bound(v[i].begin(), v[i].end(), 2);</p> <p> <br></p> <p>에러 메시지는 다음과 같습니다.</p> <p>cannot convert ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’ to ‘int’ in initialization</p> <p> </p> <p> </p> <p>lower_bound()에서 파라미터로 주소를 전달하면 되는 것으로 알고 있고, v[i].begin()과 v[i].end()가 각각 v[i]의 시작주소, 마지막다음주소라서 가능할 것으로 생각되는데, 왜 안되는걸까요....?</p> <p>에러코드를 이해하지 못하겠어요ㅠㅠ</p> <p> </p> <p> </p>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.