c ++ Programmation Exercices 041: Set

programmation du Nord et des algorithmes (c) Résumé quiz (printemps 2020)


description

Un ensemble classique de nombres entiers (permettant des éléments en double), initialement vide. Nous définissons comme suit:
la Ajouter x x ajouté à la collection
del ensemble x à x égal à tous la suppression de l' élément
DEMANDEZ x dans un cas où l'élément de collecte x interrogation
de chaque opération, nous avons besoin de la sortie suivante.
ensemble x ajouter opération de sortie après le nombre de
nombre x ensemble avant l'opération de sortie del
demander première sortie indiquant si 0 ou 1 a été ajouté à l'ensemble des x (0 INDIQUE jamais ajouté), et délivre alors le nombre de l'ensemble actuel de x, ouverture intermédiaire par des espaces.

Entrée
de la première ligne est un entier n, le nombre de commandes. 0 <= n <= 100.000.
N commandes de ligne de retour, comme décrit dans la description.

Sortie
totale n lignes, chaque ligne de sortie requise.

entrée échantillon
. 7
l'Add. 1
l'Add. 1
DEMANDER. 1
DEMANDEZ 2
del 2
del. 1
DEMANDEZ. 1

Exemple de sortie
. 1
2
. 1 2
0 0
0
2
. 1 0

提示
S'il vous plaît le jeu et multiset de utilisepasSTL pour terminer la tâche


analyse

Utilisez le jeu de modèle

#include <set>
#include <string>
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
	multiset<int> sets;
	set<int> be_sets;
	int n;
	cin >> n;
	char cmd[20];
	int  num;
	set<int>::iterator li;
	while (n--) {
		cin >> cmd;
		int count = 0;
		switch (cmd[1]) {
		case 'd':
			cin >> num;
			sets.insert(num);
			be_sets.insert(num);
			cout << sets.count(num) << endl;
			break;
		case 'e':
			cin >> num;
			cout << sets.count(num) << endl;
			for (li = sets.begin(); li != sets.end(); li++){
				if (*li == num){
					sets.erase(li);
				}
			}
			break;
		case 's':
			cin >> num;
			if (be_sets.find(num) != be_sets.end()) {
				cout << 1 << " " << sets.count(num) << endl;
			}
			else
				cout << 0 << " " << sets.count(num) << endl;
			break;
		}
	}
	return 0;
}
Publié 222 articles originaux · a gagné les éloges 48 · vues 20000 +

Je suppose que tu aimes

Origine blog.csdn.net/qq_44116998/article/details/104419595
conseillé
Classement