[C++] find()함수

2024. 1. 22. 01:26·Language/C++
728x90
반응형

📌 1. <algorithm> find()

#include<algorithm>
find(start, end, value);
  • start부터 last 전까지 원소들 중 value와 일치하는 첫 번째 원소의 iterator를 리턴함
  • 범위 내에 value값이 없다면 end 리턴
//ex)
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
    vector<int> numbers = {1, 2, 3, 4,5};
    int target = 3;

    auto it = find(numbers.begin(), numbers.end(), target);
    if(it!=numbers.end()){
        cout<<"원하는 값 찾음 : "<<*it<<endl;
    }
    else{
        cout<<"원하는 값 못찾음"<<endl;
    }
    return 0;
}

 

📌 2. <string> find()

  • 문장.find(패턴)
  • 패턴을 문장 안에서 찾으면 인덱스를 반환함
  • 찾지 못한다면 string::npos 값을 반환함
#include<iostream>
#include<string>

using namespace std;
int main(){
    string str = "Hello, World!";
    string pattern = "World";

    size_t found = str.find(pattern);

    if(found != string::npos){
        cout<<"패턴 발견. 인덱스: "<<found<<endl;
    }
    else{
    cout<<"패턴 발견 실패."<<endl;
    return 0;
}

⚡ 두 find()의 차이

1) 적용 대상

  • <string>의 find() : 문자열에서 패턴을 검색
  • <algorithm>의 find() : 일반적인 시퀀스(컨테이너, 배열 등)에서 값 검색

 

2) 사용 방법

  • <string>의 find() : std::string 객체의 멤버함수로 사용
    • ex) str.find(pattern)
  • <algorithm>의 find() : 알고리즘 함수로 사용
    • ex) std::find(container.begin(), container.end(), value)

 

3) 반환값

  • <string>의 find()
    • 검색된 패턴의 첫 번째 문자의 인덱스를 반환함
    • 발견하지 못했다면 std::string::npos반환함
  • <algorithm>의 find() : 일반적인 시퀀스(컨테이너, 배열 등)에서 값 검색
    • 검색된 값을 가리키는 반복자를 반환
    • 발견하지 못했다면 컨테이너의 끝(end())을 가리키는 반복자 반환

 

 

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Language > C++' 카테고리의 다른 글

[C++] class VS 구조체  (0) 2024.01.26
[C++] <vector>  (0) 2024.01.26
[C++] priority queue (우선순위 큐) 란?  (1) 2024.01.26
[C++] <algorithm>  (1) 2024.01.22
[C++] cpp의 기본 내용 정리  (2) 2024.01.22
'Language/C++' 카테고리의 다른 글
  • [C++] <vector>
  • [C++] priority queue (우선순위 큐) 란?
  • [C++] <algorithm>
  • [C++] cpp의 기본 내용 정리
예롱메롱
예롱메롱
  • 예롱메롱
    예롱이의 개발 블로그
    예롱메롱
  • 전체
    오늘
    어제
    • 전체보기 (274)
      • 프로젝트 (35)
        • Wedle (12)
        • 인스타그램 클론 코딩 (13)
        • 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 (10)
      • 인프런 Spring 강의 정리 (79)
        • 스프링 입문 - 코드로 배우는 스프링 부트, 웹 .. (7)
        • Spring 핵심 원리 - 기본편 (9)
        • 모든 개발자를 위한 HTTP 웹 기본 지식 (8)
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편 (11)
        • 실전! 스프링 부트와 JPA 활용1 - 웹 애플리.. (6)
        • 실전! 스프링 부트와 JPA 활용2 - API 개.. (5)
        • 실전! 스프링 데이터 JPA (7)
        • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (7)
        • 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 (11)
        • 실전! Querydsl (8)
      • Cloud (3)
      • Spring (6)
        • spring boot (5)
        • 소셜로그인 (1)
      • Docker (2)
      • DevOps (0)
      • Coding Test (114)
        • Programmers (37)
        • Baekjoon (76)
      • KB It's Your Life 6기 (1)
      • CS (18)
        • 알고리즘 (13)
        • 컴퓨터 구조 (1)
        • Operating System (0)
        • Network (0)
        • Database (4)
      • git (1)
      • Language (15)
        • Java (5)
        • C++ (6)
        • Python (4)
    • GITHUB GITHUB
    • INSTAGRAM INSTAGRAM
  • hELLO· Designed By정상우.v4.10.3
예롱메롱
[C++] find()함수
상단으로

티스토리툴바