C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
C++ multiset operator=There are following three uses of operator= in multiset:
Syntaxcopy(1) multiset& operator= (const multiset& x); //until C++ 11 copy (1) multiset& operator= (const multiset& x); //since C++ 11 move (2) multiset& operator= (multiset&& x); //since C++ 11 initializer list (3) multiset& operator= (initializer_list copy (1):- Copies all the elements from x into the multiset container. move (2):- Moves the contents of x into the multiset container. initializer_list (3):- Copies the elements of il into the multiset container. Parameterx: A multiset object with the same type. il: An initializer list object. Return valuethis pointer. ComplexityCopy assignment: Linear in sizes. Move assignment: Linear in current container size. Initializer list assignment: Up to logarithmic in sizes. Iterator validityAll references, iterators and pointers related to this multiset container are invalidated. Data RacesAll copied elements are accessed. The move assignment modifies x. The multiset container and all its elements are modified. Exception SafetyIf an exception is thrown, the container is in a valid state. Example 1Let's see the simple example to copy the content of one multiset to another: #include <iostream> #include <set> using namespace std; int main(void) { multiset<int> s1 = {10,20,10,30}; cout << "Multiset s1 contains following elements" << endl; for (auto it = s1.begin(); it != s1.end(); ++it) cout << *it << endl; multiset<int> s2 = s1; cout<<"\nAfter copying the elements from s1 to s2... \n"; cout << "\nMultiset s2 contains following elements" << endl; for (auto it = s2.begin(); it != s2.end(); ++it) cout << *it<< endl; return 0; } Output: Multiset s1 contains following elements 10 10 20 30 After copying the elements from s1 to s2... Multiset s2 contains following elements 10 10 20 30 In the above example, operator = is used to copy the content of one multiset s1 to another multiset s2. Example 2Let's see a simple example to move the elements of one multiset to another: #include <iostream> #include <set> using namespace std; int main(void) { multiset<char> s1 = {'a','e','i','o','u','e','u'}; cout << "Multiset m1 contains following elements" << endl; for (auto it = s1.begin(); it != s1.end(); ++it) cout << *it << ", "; multiset<char> s2 = move(s1); cout<<"\n\nAfter moving the elements from s1 to s2... \n"; cout << "\nMultiset s2 contains following elements" << endl; for (auto it = s2.begin(); it != s2.end(); ++it) cout << *it << ", "; return 0; } Output: Multiset m1 contains following elements a, e, e, i, o, u, u, After moving the elements from s1 to s2... Multiset s2 contains following elements a, e, e, i, o, u, u, In the above example, operator = is used to move the content of one multiset s1 to another multiset s2. Example 3Let's see a simple example to copy the content from initializer list to multiset: #include <iostream> #include <set> using namespace std; int main(void) { multiset<int> s; s = {100, 200, 300, 100, 300}; //initializer list cout << "Multiset contains the following elements" << endl; for (auto it = s.begin(); it != s.end(); ++it) cout << *it << endl; return 0; } Output: Multiset contains the following elements 100 100 200 300 300 In the above example, operator = is used to copy the content from initializer list to multiset m. Example 4Let's see a simple example: #include <iostream> #include <set> using namespace std; int main () { int values [] = { 5 , 2 , 4 , 1 , 0 , 0 , 9 }; multiset < int > c1 ( values , values + 7 ); multiset < int > c2 ; c2 = c1 ; c1 = multiset < int > (); cout<< "Size Of c1:" << c1 . size () << endl ; cout<< "Size Of c2:" << c2 . size () << endl ; } Output: Size Of c1:0 Size Of c2:7 In the above example, there are two multisets c1 and c2. c1 has 7 elements and c2 is empty, but after assigning c1 to c2, size of c1 become 0 and size of c2 become 7.
Next TopicC++ multiset
|