프로젝트 의 C++ 스킬 트리

키워드로 메모 찾기

상대 경로 식별, ASCII 영문자 단어 인덱스, 문서 단위 AND 검색으로 일치하는 모든 메모와 실제 원문 행을 반환하는 재사용 가능한 C++ 메모 검색 도구를 만듭니다.

프로젝트C++

💡 이 튜토리얼은 영어로 번역되었습니다. 원본을 보려면 영어로 전환

소개

키워드로 메모 찾기는 언어 기초를 익힌 학습자를 위한 C++ 실습 프로젝트입니다. 기억나는 몇 단어로 여러 폴더에서 일치하는 메모를 모두 찾고, 단어가 실제로 나타나는 위치를 보여 주는 재사용 가능한 로컬 검색 도구를 만듭니다.

이 과정은 가이드 실습 2개와 독립 챌린지 1개로 구성됩니다. 먼저 인덱스에서 단어와 문서 식별자를 연결합니다. 다음에는 검색어를 조합해 해당 단어가 모두 포함된 문서를 찾습니다. 마지막에는 같은 규칙을 다른 메모 모음에 적용합니다. 각 실습은 자체 메모와 시작 코드를 제공하며 이전 환경의 파일에 의존하지 않습니다.

학습 내용

과정을 마치면 다음을 수행할 수 있습니다.

  • 상대 경로로 문서를 식별해 다른 폴더에 있는 같은 이름의 파일을 구분합니다.
  • map과 set으로 단어에서 문서 집합으로 이어지는 인덱스를 만들고 반복된 단어 때문에 문서를 중복 등록하지 않습니다.
  • ASCII 영문자에 기반한 전체 단어 규칙을 적용하고 ASCII 대소문자를 구분하지 않습니다.
  • 후보 집합을 AND로 조합해 모든 검색어가 포함된 문서를 빠짐없이 반환합니다.
  • 실제 경로, 행 번호, 일치하는 원래 행을 같은 행의 중복 없이 출력합니다.
  • 프로그램을 다시 실행해 현재 연습 메모로 인덱스를 재구축하면서 참조 원본을 보존합니다.

추천 대상

이 과정은 표준 컨테이너와 파일 입력을 사용해 규칙이 명확하고 검증 가능한 유용한 검색 프로그램을 만들고 싶은 C++ 학습자에게 적합합니다.

선수 지식: 기본 터미널 탐색과 C++ 문자열, 함수, vector, 파일 스트림, 기초 예외에 익숙해야 합니다. 가이드 실습에서 필요한 map 및 set 연산, 상대 경로에 따른 식별, 집합 교집합을 설명합니다.

학습 환경: LabEx는 C++17 컴파일러, 시작 코드, 메모 모음, Terminal이 준비된 브라우저 기반 Linux 환경을 제공합니다. 파일 로딩, 단어 분리, 출력 형식 지정 보조 코드는 준비되어 있습니다. 명령과 프로그램 메시지는 영어이며 메모 파일 이름과 본문은 제공된 내용을 유지합니다.

자주 묻는 질문

모든 검색어가 같은 행에 있어야 하나요?

아니요. AND는 문서 전체에 적용됩니다. 각 단어는 서로 다른 행에 있어도 됩니다. 결과에는 검색어 중 하나라도 포함된 원래 행이 각각 한 번씩 표시되므로 근거를 직접 확인할 수 있습니다.

모든 언어를 이해하는 검색인가요?

단어 규칙은 연속된 ASCII 영문자에 한정되며 ASCII 대문자를 소문자로 바꿉니다. 다른 바이트는 단어를 구분합니다. cat과 catalog는 서로 다른 단어입니다. Unicode 파일 이름과 원래 행 본문은 보존하지만 일반적인 다국어 단어 분리 기능은 제공하지 않습니다.

수정한 메모는 인덱스에 어떻게 반영되나요?

프로그램을 호출할 때마다 현재 파일을 다시 읽고 메모리에 새 인덱스를 만듭니다. 허용된 연습 메모를 수정하거나 추가 또는 삭제한 후 프로그램을 다시 실행하세요. 참조 원본은 변경하지 않으며 영구 인덱스나 백그라운드 갱신 서비스는 없습니다.

강사

labby
Labby
Labby is the LabEx teacher.

추천 코스

no data