
C++ 일련하는 원소 찾기 Search
Notepad96
·2020. 11. 13. 21:34
1. search, search_n
search, search_n 함수들은 algorithm 라이브러리의 포함되어 있다.
search는 원소 중 특정 값들이 일렬로 존재하고 있는지, 존재하고 있다면 어느 위치에 존재하는지를 찾아낼 수 있다.
search_n의 경우 지정한 수가 n번 연속으로 존재하는 지를 판별할 수 있다.
2. 코 드
환경 : Visual studio 2019
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
vector<int> v;
v.push_back(3);
v.push_back(4);
v.push_back(5);
v.push_back(6);
v.push_back(7);
v.push_back(1);
v.push_back(1);
v.push_back(1);
cout << "vector : ";
for (int n : v) {
cout << n << " ";
}
cout << "\nindex : ";
for (int n = 0; n < v.size(); n++) {
cout << n << " ";
}
cout << "\n==========================\n";
vector<int> v2 = { 5, 7 };
cout << "{ ";
for (int n : v2) {
cout << n << " ";
}
cout << "} ";
auto it = search(v.begin(), v.end(), v2.begin(), v2.end());
if (it != v.end()) {
cout << it-v.begin() << "에 위치한다.\n";
}
else {
cout << "는 존재하지 않습니다.\n";
}
cout << "\n==========================\n";
v2 = { 5, 6, 7 };
cout << "{ ";
for (int n : v2) {
cout << n << " ";
}
cout << "} ";
it = search(v.begin(), v.end(), v2.begin(), v2.end());
if (it != v.end()) {
cout << it - v.begin() << "에 위치한다.\n";
}
else {
cout << "는 존재하지 않습니다.\n";
}
cout << "\n==========================\n";
int num1 = 3, num2 = 1;
it = search_n(v.begin(), v.end(), num1, num2);
cout << "{ ";
for (int i = 0; i < num1; i++) {
cout << num2 << " ";
}
cout << "} ";
if (it != v.end()) {
cout << it - v.begin() << "에 위치한다.\n";
}
else {
cout << "는 존재하지 않습니다.\n";
}
return 0;
}

- search 함수는 인자로 (시작 반복자, 끝 반복자, 찾을 원소 시작 반복자, 찾을 원소 끝 반복자) 를 받는다.
3. 참 조
search - C++ Reference
function template std::search equality (1)template ForwardIterator1 search (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2); predicate (2)template ForwardIterator1 search (ForwardIterator1 first
www.cplusplus.com
search_n - C++ Reference
function template std::search_n equality (1)template ForwardIterator search_n (ForwardIterator first, ForwardIterator last, Size count, const T& val); predicate (2)template ForwardIterator search_n ( ForwardIterator first, ForwardIterator last,
www.cplusplus.com
'C++ > STL' 카테고리의 다른 글
C++ vector 범위 초기화 Copy (0) | 2020.11.14 |
---|---|
C++ 동일 원소 포함 여부 확인 is_permutation (0) | 2020.11.14 |
C++ 원소 개수 구하기 Count (0) | 2020.11.13 |
C++ Vector 값 탐색 find - 존재 유무 확인 (0) | 2020.11.12 |
C++ Vector 최대값, 최소값, 인덱스 구하기 (0) | 2020.11.12 |