게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[질문] C++ vetcor lower_blund()
게시물ID : programmer_23338짧은주소 복사하기
작성자 : 광멍
추천 : 1
조회수 : 1424회
댓글수 : 2개
등록시간 : 2022/04/16 23:24:14
옵션
  • 본인삭제금지

#include <stdio.h>

#include <vector>

#include <algorithm>

using namespace std;


int n, t, q;

vector<int> v[11];


int main() {

    scanf("%d", &n);

    for(int i=0; i<n; i++) {

        scanf("%d", &t);

        v[t].push_back(i+1);

    }


    for(int i=0; i<11; i++) {

        if(v[i].size()) {

            printf("\n[%d] ", i);

            for(int j=0; j<v[i].size(); j++)

                printf("%d ", v[i][j]);

        }

    }

return 0;

}

위 코드는 잘 돕니다. // 0부터 10까지의 수들이 입력된 위치를 벡터에 저장

그런데, 위 코드의 파란 색 부분에 다음 코드를 넣으면 에러가 납니다;;;

 

            int lb = lower_bound(v[i].begin(), v[i].end(), 2);


에러 메시지는 다음과 같습니다.

cannot convert ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’ to ‘int’ in initialization

 

 

lower_bound()에서 파라미터로 주소를 전달하면 되는 것으로 알고 있고, v[i].begin()과 v[i].end()가 각각 v[i]의 시작주소, 마지막다음주소라서 가능할 것으로 생각되는데, 왜 안되는걸까요....?

에러코드를 이해하지 못하겠어요ㅠㅠ

 

 

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호