#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
vector<int> arr = { 1,2,2,3,3,4,5 };
int a = lower_bound(arr.begin(), arr.end(), 2) // 이건 안됌 당연히 반환값이 iterator니깐
int b = lower_bound(arr.begin(), arr.end(), 2) - arr.begin(); // 이건 외되;;;;;;
}
여기서 왜 int b는 외 돼는지 아는사람 있을까요.....
해당 댓글은 삭제되었습니다.
신기하구먼요 좀더 만지작 해봐야겟습니다
찾는걸 3으로 하고 b를 찍어보십시오 휴먼 왜 되는지 이해가 갈껍니다
형님 2나 3이나 결국에 b 는 lower_bound의 값을 int형으로 원하는 값을 정상 출력 한다는거 아닌가요?
그렇게 하면 두 iterator 사이에 distance 반환하는거 아님?
대부분의 임의접근 이터레이터끼리 뺄셈은 정수형으로 나옴. 다 되는건지는 안해봐서 잘 모르겠는디 원래 begin()+1 이런거 많이 쓰잖음. 이터레이터 증감연산 ++it, --it이 정의되어있는건 알고있듯이 it+2이런것도 계산할 수 있는부분이고 뺄셈도 됨