cout을 통한 iterator의 출력의 경우에 관하여.
#include <bits/stdc++.h>
using namespace std;

int main(void) {
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n;
	cin >> n;
	vector<int> v(n);
	for (int i = 0; i < n; i++) v.push_back(i);

	auto it = find(v.begin(), v.end(), 3) - v.begin();
	cout << it << " <<<====<< iterator를 출력했을때의 결과물";
		
}

위 코드에서 

 auto it=find(v.begin(),v.end(),3)-v.begin();

에서, 만약 -v.begin()부분이 없을때 어떤식으로 출력되나 궁금해서 해보려 하니까, 출력이 안되었다. 

 

이러한 에러코드와 함께. 

그리고 그럴 경우 auto it는

 

이렇게 표시되고.

 

만약 -begin을 해주면

 

auto it의 경우

이렇게 바뀌고, 

cout<<it;도 문제없이 연산된다. 

 

그와 관련하여서 궁금한 부분에 대해서 gpt에 검색해봤을때 나온 내용을 첨부해보면, 

이와 같다. 

여기서 얘기하는 distanc 함수에 대하여 추가적으로 질문하여서 얻은 내용은 아래와 같다.

 

일단은 int idx=find(DQ.begin(),DQ.end(),t)-DQ.begin(); 형태로 표현하는 것에 대해서 더욱 익숙해지게 노력하도록 하자. 

  Comments,     Trackbacks