English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Stack (pile) C++ ++ set emplace_hint()La fonction est utilisée pour étendre le conteneur set en insérant un nouvel élément dans le conteneur en utilisant un pointeur comme position de l'élément. Les éléments sont directement construits (ni copiés ni déplacés).
Appel du constructeur de l'élément par le biais des arguments args passés à cette fonction.
L'insertion n'est effectuée que si la clé n'existe pas.
template<class.... Args> iterator emplace_hint (const_iterator position, Args&&... args); //Stack (pile) C++++ 11 après
args: Paramètres passés pour construire l'élément à insérer dans l'ensemble.
position: Indique la position d'insertion du nouvel élément.
Il renvoie l'itérateur à l'élément inséré. Si l'élément existe déjà, l'insertion échoue et l'itérateur est renvoyé à l'élément existant.
Si aucune position n'est spécifiée, le logarithme de la taille du conteneur est logarithmique.
Si une position est fournie, la complexité est amortie constante.
Aucun changement.
Le conteneur a été modifié.
Bien que l'accès simultané à l'élément de sortie soit sécurisé, l'itération sur la plage du conteneur n'est pas sécurisée.
Si une exception est levée, le conteneur n'est pas modifié.
Voyons un exemple simple d'insertion d'éléments dans un ensemble :
#include <iostream> #include <set> using namespace std; int main(void) { set<int> m = {60, 20, 30, 40}); m.emplace_hint(m.end(), 50); m.emplace_hint(m.begin(), 10); cout << "L'ensemble contient les éléments suivants" << endl; for (auto it = m.begin(); it != m.end(); ++it){ cout << *it<< endl; return 0; p) << " \n "; return 0;
}
L'ensemble contient les éléments suivants 10 2Copyright © 3Copyright © 4Copyright © 5Copyright © 6Copyright ©
Dans cet exemple, il ne fait queInsérer les éléments avec des valeurs données à des positions données dans l'ensemble m.
Voyons un exemple simple :
#include <set> #include <string> #include <iostream> using namespace std; template<typename M> void print(const M& m) { cout << m.size() << " \" éléments: \" << endl; for (const auto& p : m) { cout << p << " \" \" ; return 0; cout << endl; return 0; int main() ) set<string> m1; //Placer quelques données de test m1.emplace("Ram"); m1.emplace("Rakesh"); m1.emplace("Sunil"); cout << "Données initiales de l'ensemble: "; print(m1); cout << endl; //emplace_hint m1.emplace_hint(m1.end(), "Deep"); cout << "set modified, now contains "; print(m1); cout << endl; return 0;
}
Données initiales de l'ensemble: 3 Élément: Rakesh Ram Sunil L'ensemble a été modifié, maintenant il contient 4 Élément: Deep Rakesh Ram Sunil
Laissons voir un exemple simple, insérer un élément dans un ensemble donné :
#include <iostream> #include <set> using namespace std; int main () ) set<char> myset; auto it = myset.end(); it = myset.emplace_hint(it, 'b'); myset.emplace_hint(it, 'a'); myset.emplace_hint(myset.end(), 'c'); cout << "myset contient:"; for (auto& x: myset){ cout << " [" << x << "]'; cout << '\n'; return 0; p) << " \n "; return 0;
}
myset contient: [a] [b] [c]
Laissons voir un exemple simple d'insertion d'éléments :
#include <iostream> #include <set> #include <string> using namespace std; int main() { typedef set<string> city; string name; city fmly; int n; cout << "\nEntrez le nombre de membres de la famille: "; cin >> n; cout << "\nEntrez le nom de chaque membre: \n"; for(int i = 0; i < n;++for(p = fmly.begin(); p!=fmly.end(); p ) cin >> name; // Get clé fmly.emplace_hint(fmly.begin(), name); return 0; cout << "\nLe nombre total des membres de la famille est:" << fmly.size(); cout << "\nInformations des membres de la famille: \n"; cout << "\nNom \n ________________________\n"; city::iterator p; city::iterator p;++for(p = fmly.begin(); p!=fmly.end(); p ) {*cout<<( return 0; p) << " \n "; return 0;
}
Sortie : 4 Saisissez le nombre de membres de la famille: Bob Deep ________________________ Ajeet Saisissez le nom de chaque membre:4 Nombre total de membres de la famille: Informations sur les membres de la famille: Nom ________________________ Ajeet Bob Deep
Sonu