>백엔드 개발 >C++ >맵 STL을 사용하여 학생의 학생 번호와 이름을 저장하는 C++ 프로그램

맵 STL을 사용하여 학생의 학생 번호와 이름을 저장하는 C++ 프로그램

PHPz
PHPz앞으로
2023-09-17 10:05:02741검색

使用map STL存储学生的学号和姓名的C++程序

학생 볼륨의 맵 데이터 구조가 있다고 가정합니다. 볼륨 이름은 정수 데이터이고 이름은 문자열 유형 데이터입니다. 표준 입력에서는 n개의 쿼리를 제공합니다. 각 쿼리(행당)에는 두 개의 요소가 있어야 하며, 유형 1 쿼리의 경우 세 개의 요소가 있어야 합니다. 첫 번째 항목은 연산자이고, 두 번째 항목은 볼륨, 세 번째 항목은 이름이고, 두 요소 쿼리의 경우 두 번째 항목은 볼륨 번호입니다. 방법은 다음과 같습니다.

  • 삽입. 그러면 해당 볼륨의 맵에 이름이 삽입됩니다

  • 삭제. 해당 롤 번호가 있는 경우 지도에서 해당 롤 번호가 제거됩니다.

  • 검색하세요. 그러면 이름에 대한 롤 번호가 있는 지도를 검색하여 이름이 있으면 표시하고, 그렇지 않으면 찾을 수 없습니다.

따라서 입력이 n = 8과 같은 경우 쿼리 = [[1,5,"Atanu"], [1,8,"Tapan"], [1,3,"Manish "],[ 2,8],[1,9,"Piyali"], [3,8],[3,3], [3,5]], 출력은 [찾을 수 없음, Manish, Atanu]입니다. 8은 존재하지 않으며, 3번 롤의 학생 이름은 Manish이고 5번 롤의 학생 이름은 "Atanu"입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. -

  • n := 쿼리 수 li>
  • 정수 유형 키와 문자열 유형 값의 맵 m을 정의합니다.
  • n이 0이 아닌 경우 각 반복에서 n을 감소시킵니다.
      현재 쿼리 유형 t 가져오기
  • 롤 번호 가져오기
  • t가 1과 같으면 다음을 수행합니다.
    • 이름 가져오기
    • m[roll ] := name
  • 그렇지 않으면 t가 2와 같을 때:
    • m[roll] := 빈 문자열
  • 그렇지 않으면
    • m[roll]이 빈 문자열이 아니면:
      • m 표시 [롤]
    • 그렇지 않으면
      • 에 "찾을 수 없음"이 표시됩니다.

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. -

#include <iostream>
#include <map>
using namespace std;
int main(){
    int n;
    cin >> n;
    map<int, string> m;
    while (n--) {
        int t;
        cin >> t;
        int roll;
        cin >> roll;
        if (t == 1) {
            string name;
            cin >> name;
            m[roll] = name;
        } else if (t == 2) {
            m[roll] = "";
        } else {
            if(m[roll] != "")
                cout << m[roll] << endl;
            else
                cout << "Not found" << endl;
        }
    }
}

Input

8
1 5 Atanu
1 8 Tapan
1 3 Manish
2 8
1 9 Piyali
3 8
3 3
3 5

Output

레이

위 내용은 맵 STL을 사용하여 학생의 학생 번호와 이름을 저장하는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
이전 기사:C의 데이터 유형다음 기사:C의 데이터 유형