반응형
728x170
<algorithm>라이브러리의 find가 있음
iterator를 인수로 받는다.
다만 find는 왼쪽부터 최초 원소만 찾고
find_if는 조건에 만족하는 모든 원소 찾음
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
bool isOdd(int n) {
return n % 2 == 1;
}
int main() {
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(3);
v.push_back(6);
cout << "현재 vector : ";
for (int i : v) cout << i << " ";
cout << "\n";
int num = 3;
//가장 먼저 출현하는 것만 찾음.
auto it = find(v.begin(), v.end(), num);
if (it == v.end()) {
cout << num << "X \n";
}
else {
cout << num << " 다음 위치에 존재 " << it - v.begin() << "\n";
}
cout << "\n==============================\n";
// 조건 만족하는 원소 다 찾음
auto it2 = find_if(v.begin(), v.end(), isOdd);
while (it2 != v.end()) {
cout << *it2 << "\n";
it2 = find_if(it2 + 1, v.end(), isOdd);
}
return 0;
}
이렇게 나옴
728x90
반응형
그리드형
'문제풀이(Problem Solving) > C++ 문제풀이에 유용한 것들' 카테고리의 다른 글
반올림 함수, round() (0) | 2021.06.07 |
---|---|
순열, 순서구분하고 선택하는 방법 (0) | 2021.06.07 |
C++에서의 따옴표 (0) | 2021.06.07 |
입출력이 많음으로 인해 시간초과나는 것 해결 (0) | 2021.06.07 |
컨테이너 원소들의 최대, 최소 그리고 최대 최소 비교 (0) | 2021.06.07 |