C++/Vector/vector reverse

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

Reverse all elements in a vector by using reverse

<source lang="cpp">


  1. include <iostream>
  2. include <vector>
  3. include <algorithm>

using namespace std; int main() {

 vector<int> v;
 unsigned int i;
 for(i=0; i<10; i++) v.push_back(i);
 cout << "Initial: ";
 for(i=0; i<v.size(); i++) cout << v[i] << " ";
 cout << endl;
 reverse(v.begin(), v.end());
 cout << "Reversed: ";
 for(i=0; i<v.size(); i++) cout << v[i] << " ";
 return 0;

} /* Initial: 0 1 2 3 4 5 6 7 8 9 Reversed: 9 8 7 6 5 4 3 2 1 0

*/        
 </source>


Use merge with back_inserter

<source lang="cpp">

  1. include <iostream>
  2. include <string>
  3. include <list>
  4. include <vector>
  5. include <algorithm>
  6. include <iterator>

using namespace std; int main( ) {

  vector<string> v1, v2, v3;
  v1.push_back("a");
  v1.push_back("c");
  v1.push_back("e");
  v2.push_back("b");
  v2.push_back("d");
  v2.push_back("f");
  v3.reserve(v1.size( ) + v2.size( ) + 1);
  merge(v1.begin( ), v1.end( ),
        v2.begin( ), v2.end( ),
        back_inserter<vector<string> >(v3));
  for(int i=0;i<6;i++){
     cout << v3[i];
  }

} /* abcdef

*/        
 </source>