find 함수 : string과 vector는 다르다.
관련 문제
: 단어변환
시퀀스 컨테이너
- 변수에 find를 통해 end() 값 비교를 통해 검색이 가능하다.
벡터의 경우
- 변수에 find함수 사용 못하므로 iter를 통해 진행하자.
- 변수에 find함수 사용 못하므로 iter를 통해 진행하자.
auto iter = find(v.begin(), v.end(), target);
iter != end()
이렇게
v.find() : 불가능하다!
- 관련문제 : 카카오 2018 캐시
find를 통해 인덱스 접근
: auto iter = find(v.begin(), v.end(), target);
이후에 iter 와 v.begin()을 뺌으로서 인덱스 를 얻을 수 있다.
이때는 iter가 v.end()에 있을 수 있으므로 예외처리 해야한다.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(void) {
vector<int> v{ 1,2,3,4 };
auto iter = find(v.begin(), v.end(), 13);
if (iter != v.end())
{
int index = distance(v.begin(), iter);
cout << index << endl;
}
else
{
cout << "컨테이너에 값이 없습니다." << endl;
}
iter = find(v.begin(), v.end(), 2);
if (iter != v.end())
{
int index = distance(v.begin(), iter);
cout << index << "번 인덱스에 값이 있습니다. "<< endl;
}
else
{
cout << "컨테이너에 값이 없습니다.";
}
}
string에서의 find함수 사용
find 함수의 리턴값은 발견된 문자열의 시작 인덱스 값을 반환한다.
만약에 찾지 못했을 경우에는 string:npos를 반환한다.
예제
-
문자열 존재할 경우
: 문자열 12가 여러개 있지만, 맨 앞에 위치한 인덱스 3번을 출력했다.
-
문자열 존재하지 않을 경우.
Author And Source
이 문제에 관하여(find 함수 : string과 vector는 다르다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@kwt0124/find-함수
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
find 함수의 리턴값은 발견된 문자열의 시작 인덱스 값을 반환한다.
만약에 찾지 못했을 경우에는 string:npos를 반환한다.
문자열 존재할 경우
: 문자열 12가 여러개 있지만, 맨 앞에 위치한 인덱스 3번을 출력했다.
문자열 존재하지 않을 경우.
Author And Source
이 문제에 관하여(find 함수 : string과 vector는 다르다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kwt0124/find-함수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)