STUDY/C++

[C++] vector 원소 찾기, 해당 인덱스 찾기 (find 함수)

yegyeom 2021. 10. 24. 17:36

1. vector내에 해당 원소가 존재하는지 확인

find(v.begin(), v.end(), 찾을 대상)

리턴 값이 v.end()인 경우 => 해당 원소가 존재하지 않는 것

리턴 값이 v.end()가 아닌 경우 => 해당 원소 존재하는 것

 

2. vector내에서 해당 원소가 위치하는 인덱스 찾기

find(v.begin(), v.end(), 찾을 대상) - v.begin()

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    vector<int> v;

    v.push_back(1);
    v.push_back(1);
    v.push_back(6);
    v.push_back(8);
    
    if(find(v.begin(), v.end(), 0) == v.end()) { // vector내에 0이 존재하지 않음
        cout << "not exist\n";
    }

    if(find(v.begin(), v.end(), 6) != v.end()) { // vector내에 6이 존재함
        cout << find(v.begin(), v.end(), 6) - v.begin(); // index 확인
    }

    return 0;
}

// ***output***
// not exist
// 2