강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

원재님의 프로필 이미지
원재

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

3주차 개념 #1. 완전탐색과 백트래킹

3주차 수업 질문있습니다.

작성

·

12

0

안녕하세요 큰돌님:)

제가 지금까지 진행하면서 find와 .find의 사용이 헷갈립니다!!

혹시 어디에는 뭘 사용하는지 정리해주실 수 있을까요?

일단 제가 알고 있는 것은 find()는 이터레이터를 반환하고 실패시 해당 컨테이너의 .end()를 반환합니다.

.find()는 오늘 수업과 "666"문제로 실패 시 string::npos를 반환하는 걸 알았습니다.

find는 보통 순차 컨테이너에 사용하는 거 같고 (map, vector, list 등)

.find 문자열 그리고 map에서 사용하는 거 같습니다.

하지만 이것이 뭔가 정리가 안되어 있는 느낌이라 큰돌님께서 혹시 딱 정리해주실 수 있나요??!!!

사실 map일때 key는 .find를 쓰고 쌍을 찾을 때는 find를 쓰고 너무 헷갈립니다. ㅠㅠ

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 원재님!

C++의 find.find 사용에 대해 정리가 필요하신 것 같아 안내해 드리겠습니다.

  1. std::find 알고리즘

    • #include <algorithm> 헤더에 포함되어 있습니다.
    • 주로 순차 컨테이너가 제공된 범위 내에서 특정 값을 찾는 데 사용됩니다. 예를 들어, std::vector, std::list 등이 있습니다.
    • 찾고자 하는 값이 발견되면 해당 위치에 대한 이터레이터를 반환하고, 찾지 못하면 제공된 컨테이너의 end() 이터레이터를 반환합니다.
    • 사용 예시: std::find(vec.begin(), vec.end(), value)
  2. string::find 메서드

    • 문자열(string) 내에서 특정 문자열이나 문자를 찾기 위해 사용됩니다.
    • 찾고자 하는 문자열이 있을 시 해당 위치를 반환하고, 찾지 못하면 string::npos를 반환합니다.
    • 사용 예시: str.find("substring")
  3. map::find 메서드

    • 연관 컨테이너(map, unordered_map 등)에서 특정 키를 찾기 위해 사용됩니다.
    • 찾고자 하는 키가 있을 경우 해당 키-값 쌍의 위치에 대한 이터레이터를 반환하며, 없을 경우 컨테이너의 end() 이터레이터를 반환합니다.
    • 사용 예시: map.find(key)

요약하자면:
- std::find: 순차 컨테이너에서 특정 값을 찾을 때 사용합니다.
- string::find: 문자열 내에서 특정 문자열이나 문자를 찾습니다.
- map::find: 연관 컨테이너에서 특정 키를 찾고자 할 때 사용합니다.

아래 링크들은 이러한 함수의 사용에 대한 보다 구체적인 설명을 제공합니다. 참고하시면 도움이 될 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

원재님의 프로필 이미지
원재

작성한 질문수

질문하기