> 백엔드 개발 > C++ > 본문

세트 STL에서 삽입, 삭제 및 검색을 위한 C++ 프로그램

WBOY
풀어 주다: 2023-08-27 23:29:02
앞으로
1368명이 탐색했습니다.

C++程序用于在set STL中插入、删除和查找

정수형 데이터의 컬렉션 데이터 구조가 있다고 가정해 보겠습니다. 표준 입력에서는 n개의 쿼리를 제공합니다. 각 쿼리(각 행)에는 두 개의 요소가 있습니다. 첫 번째는 연산자이고 두 번째는 요소입니다. 방법은 다음과 같습니다.

  • 삽입. 그러면 요소가 컬렉션에 삽입되고

  • 제거됩니다. 컬렉션에 요소가 있으면 해당 요소가 제거됩니다.

  • 검색. 컬렉션에서 해당 요소를 검색하여 해당 요소가 있으면 "예"를 표시하고 그렇지 않으면 "아니요"를 표시합니다.

따라서 입력이 n = 7과 같은 경우 쿼리 = [[1,5],[1,8],[1,3],[2,8],[1,9], [3 ,8],[3,3]]이면 출력은 [No, Yes]가 됩니다. 왜냐하면 8은 집합에 존재하지 않지만 3은 존재하기 때문입니다.

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

  • 집합 s
  • s
  • q := 쿼리 번호를 반복할 반복자 집합 "it"을 정의합니다.
  • q가 0이 아닌 경우, 각 반복 후에 q를 줄이고 다음을 수행합니다.
    • 쿼리 유형 qt
    • 를 qt로 가져오고
      • qt가 1이면 블록에서 x s
        • 를 삽입하고
      • qt가 2이면 s에서 x 삭제
        • 블록 외부
      • qt가 3이면,
        • 그 안에서 find(x)를 호출합니다.
        • s의 마지막 요소와 동일하면:
          • NO를 인쇄합니다.
        • 그렇지 않으면
          • print YES
        • out of the block

예제

이해를 돕기 위해 다음 구현을 살펴보겠습니다. -

#include <iostream>
#include <set>
using namespace std;
int main(){
    set<int> s;
    set<int>::iterator it;
    int q,x;
    int qt;
    cin >> q;
    while(q--){
        cin>>qt>>x;
        switch(qt){
            case 1:s.insert(x);
                    break;
            case 2:s.erase(x);
                    break;
            case 3:it=s.find(x);
                    if(it==s.end())
                        cout<<"No"<<endl;
                    else
                        cout<<"Yes"<<endl;
                    break;
        }
    }
    return 0;
}
로그인 후 복사

Input

7
1 5
1 8
1 3
2 8
1 9
3 8
3 3
로그인 후 복사

Output

No
Yes
로그인 후 복사

위 내용은 세트 STL에서 삽입, 삭제 및 검색을 위한 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!