배열의 요소들 중에 특정 값이 있는지 확인하는 방법을 소개합니다.
1. std::find()를 이용한 방법
std::find(first, last, value)
는 배열의 first와 last 사이에서 value를 찾고 iterator를 리턴합니다. 배열에 찾는 요소가 없을 때는 배열의 끝을 의미하는 std::end()
값을 리턴합니다. 따라서 std::end()
가 리턴되면 찾는 값이 배열에 없다는 의미가 됩니다.
아래와 같이 배열에 특정 요소가 있는지 확인할 수 있습니다.
#include <iostream>
#include <algorithm>
int main() {
int arr[] = {9, 8, 7, 6, 5, 4};
int num = 6;
auto it = std::find(std::begin(arr), std::end(arr), num);
if (it != std::end(arr)) {
int index = std::distance(arr, it);
std::cout << "Found, Index: " << index;
} else {
std::cout << "Not Found";
}
return 0;
}
Output:
Found, Index: 3
2. std::any_of()를 이용한 방법
std::any_of(first, last, p)는 배열의 시작 위치 first에서 last 범위의 요소들에 대해서 함수 p를 수행하고, true가 리턴되는 요소가 하나라도 있으면 any_of()
함수는 true를 리턴합니다.
아래와 같이 배열에 특정 요소가 있는지 확인할 수 있습니다.
#include <iostream>
#include <algorithm>
#include <array>
int main() {
int arr[] = {9, 8, 7, 6, 5, 4};
int num = 6;
bool exists = std::any_of(std::begin(arr), std::end(arr),
[&](int i) {
return i == num;
});
if (exists) {
std::cout << "Found";
} else {
std::cout << "Not Found";
}
return 0;
}
Output:
Found
3. std::count()를 이용한 방법
std::count(first, last, value)
는 배열의 first 위치에서 last 위치 사이의 요소들 중에 value와 같은 요소가 몇개 있는지 개수를 리턴합니다.
따라서, 1개 이상을 갖고 있을 때 요소가 배열에 있다고 볼 수 있습니다.
아래와 같이 배열에 특정 요소가 있는지 확인할 수 있습니다.
#include <iostream>
#include <algorithm>
#include <array>
int main() {
int arr[] = {9, 8, 7, 6, 5, 4};
int num = 6;
bool exists = std::count(std::begin(arr), std::end(arr), num) > 0;
if (exists) {
std::cout << "Found";
} else {
std::cout << "Not Found";
}
return 0;
}
Output:
Found
Loading script...
Related Posts
- [C++] 배열을 리스트(list)로 변환
- [C++] 배열에서 특정 요소 제거
- [C++] vector 모든 요소의 합계 계산
- [C++] 두개의 배열이 같은지 비교
- [C++] 배열에 특정 요소가 있는지 확인
- [C++] 2차 배열 복사 방법
- [C++] 배열 복사하는 방법 (copy, memcpy)
- [C++] 함수의 인자로 배열 전달
- [C++] vector 모든 값의 평균 계산
- [C++] vector를 문자열로 변환
- [C++] 배열에서 요소의 Index 찾기
- [C++] 배열의 중복 요소 찾기
- [C++] 배열의 중복 요소 제거
- [C++] 배열 순서 거꾸로 뒤집기
- [C++] char 배열을 string으로 변환
- [C++] string을 char 배열로 변환
- [C++] 문자열 거꾸로 뒤집기
- [C++] vector의 중복 요소 제거
- [C++] 두 배열을 하나의 배열로 합치기
- [C++] 배열 길이, 크기 얻는 방법
- [C++] 배열에서 최대값, 최소값 찾기 (3가지 방법)
- [C++] int를 string으로 변환, 3가지 방법
- [C++] 문자열 리스트(Vector, 배열) 정렬
- [C++] string의 문자 정렬
- [C++] string을 int로 변환, 3가지 방법
- [C++] string 대문자/소문자 변환 방법
- [C++] string.compare() 문자열 비교
- [C++] int를 char로 변환, 3가지 방법
- [C++] 문자열 자르기, 3가지 방법
- [C++] isdigit(), 어떤 문자가 숫자인지 확인
- [C++] strlen(), 문자열 길이 계산
- [C++] strcmp(), strncmp() 함수로 문자열 비교
- [C++] strstr(), 특정 문자열 찾기