C++/STL Basics/back inserter

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Use back_insert_iterator to insert element into a vector

 
 
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
int main( ) {
   vector<int> v;
   back_insert_iterator<std::vector<int> > p = back_inserter(v);
   for (int i = 0; i < 10; ++i)
     *p = i;
   for (int i = 0; i < 10; ++i){
       cout << v[i];
   }
   cout << "\n\n\n";
   random_shuffle(v.begin( ), v.end( ));
   for (int i = 0; i < 10; ++i){
       cout << v[i];
   }
}
/* 
0123456789

8192057346
 */


Use unique_copy to copy elements in an array to list with back_inserter

 
 
#include <iostream>
#include <list>
#include <algorithm>
#include <string>
using namespace std;
int main( ) {
   string arrStr[5] = {"A", "B", "A", "D", "E"};
   list<string> lstStrDest;
   unique_copy(&arrStr[0], &arrStr[5], back_inserter(lstStrDest));
   for (list<string>::iterator p = lstStrDest.begin( );
        p != lstStrDest.end( ); ++p) {
      cout << *p << endl;
   }
}
/* 
A
B
A
D
E
 */