English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
The set constructor has the following five uses:
Default constructor:Used to construct an empty set container with zero elements.
Range constructor:Used to construct a container with a content range of [first, last).
Copy constructor:Used to construct a set with a copy of existing container elements.
Move constructor:Used to construct the container with move semantics along with other elements.
Initialization list constructor:Used to construct a set with initialization list content.
explicit set (const key_compare& comp = key_compare(), const allocator_type& alloc = allocator_type()); // to C++ 11 explicit set (const key_compare& comp = key_compare(), const allocator_type& alloc = allocator_type()); explicit set (const allocator_type& alloc); // A partire da C++ 11
template <class InputIterator> set (InputIterator first, InputIterator last, const key_compare& comp = key_compare(), const allocator_type& alloc = allocator_type()); // Fino a C++ 11 template <class InputIterator> set (InputIterator first, InputIterator last, const key_compare& comp = key_compare(), const allocator_type& = allocator_type()); // A partire da C++ 11
set (const set& x); // Fino a C++ 11 set (const set& x); set (const set& x, const allocator_type& alloc); // A partire da C++ 11
set (set&& x); set (set&& x, const allocator_type& alloc); // A partire da C++ 11
set (initializer_list<value_type> il, const key_compare& comp = key_compare(), const allocator_type& alloc = allocator_type()); // A partire da C++ 11
comp:Un oggetto funzione di confronto, che accetta due parametri chiave, restituisce true se il primo parametro precede il secondo, altrimenti restituisce false. Di default, utilizza il predicato less <key_type>.
alloc:Un oggetto allocatore, utilizzato per tutte le assegnazioni di memoria di questo contenitore.
first:Inserisce l'iteratore nella prima posizione della gamma.
last:Inserisce l'iteratore nell'ultima posizione della gamma.
x:Un altro oggetto set dello stesso tipo.
il:Un oggetto lista inizializzatore, da cui verranno copiati gli elementi.
Il costruttore non restituisce alcun valore.
Per i costruttori vuoti e di spostamento, la complessità sarà costante.
Per tutte le altre situazioni, se gli elementi sono già ordinati, la complessità della distanza tra gli iteratori sarà lineare.
Se gli elementi del contenitore di set vengono spostati nel costruttore di spostamento, tutti i puntatori, gli iteratori e i riferimenti relativi a x diventeranno invalidi.
Accedere a tutti gli elementi copiati.
In caso di eccezione, non avrà alcun effetto.
Lasciate che vi mostriamo un esempio semplice del costruttore predefinito:
#include <iostream> #include <set> using namespace std; int main(void) { // Costruttore predefinito set<char> s; int size = s.size(); cout << "La dimensione di set s = " << size; return 0; }
Output:
La dimensione di set s = 0
Nel esempio sopra, s è un insieme vuoto, quindi la dimensione è 0.
Lasciate che vi mostriamo un esempio semplice di costruttore di intervallo:
#include <iostream> #include <set> using namespace std; int main(void) { int evens[] = {2,4,6,8,10}; // Costruttore di intervallo set<int> myset(evens, evens+5); cout << "La dimensione del contenitore di set myset è: " << myset.size(); return 0; }
Output:
La dimensione del contenitore di set myset è: 5
Nel esempio sopra, il set myset è composto dagli elementi evens.
Lasciate che vi mostriamo un esempio di costruttore di copia semplice:
#include <iostream> #include <set> using namespace std; int main(void) { // Costruttore predefinito std::set<int> s1; s1.insert(5); s1.insert(10); cout << "La dimensione del contenitore di set s1 è: " << s1.size(); // Costruttore di copia set<int> s2(s1); cout << "\nLa dimensione del contenitore di set s2 è: " << s2.size(); return 0; }
Output:
La dimensione del contenitore di set s1 è: 2 La dimensione del contenitore di set s2 è: 2
Nel esempio sopra, s2 è una copia di backup del set s1.
Lasciate che vi mostriamo un esempio di costruttore di spostamento semplice:
#include <iostream> #include <set> using namespace std; int main(void) { // Costruttore predefinito set<char> s1; s1.insert('x'); s1.insert('y'); cout << "La dimensione del contenitore di set s1 è: " << s1.size(); // Costruttore di spostamento set<char> s2(move(s1)); cout << "\nLa dimensione del contenitore di set s2 è: " << s2.size(); return 0; }
Output:
La dimensione del contenitore di set s1 è: 2 La dimensione del contenitore di set s2 è: 2
Nel esempio sopra, il contenuto di s1 è stato spostato nel set s2.
Lasciate che vi mostriamo un esempio di costruttore di lista iniziale semplice:
#include <iostream> #include <set> #include <string> using namespace std; int main() { // Costruttore con initializer_list set<string> fruit { "orange", "apple", "mango", "peach", "grape" }; cout << "La dimensione di fruit nel contenitore è: " << fruit.size(); return 0; }
Output:
La dimensione di fruit nel contenitore è: 5
Esempio sopra: creare un set di frutta con stringa come chiave e inizializzare con initializer_list.