Merge two ranges within a vector : merge « STL Algorithms Merge « C++






Merge two ranges within a vector

  
#include <iostream>
#include <vector>
#include <deque>
#include <list>
#include <algorithm>

using namespace std;

template<class InIter>
void show_range(const char *msg, InIter start, InIter end);

int main()
{
  vector<char> v;
  deque<char> dq;
  list<char> result(26);
  list<char>::iterator res_end;

  for(int i=0; i < 26; i+=2) {
     v.push_back('A'+i);
  }
  for(int i=0; i < 26; i+=2) {
     dq.push_back('B'+i);
  }
  // Merge two ranges within v2.
  inplace_merge(v.begin(), v.begin()+13, v.end());

  show_range("Contents of v after in-place merge:", v.begin(),v.end());

  return 0;
}

template<class InIter>
void show_range(const char *msg, InIter start, InIter end) {

  InIter itr;

  cout << msg << endl;

  for(itr = start; itr != end; ++itr)
    cout << *itr << endl;
}
  
    
  








Related examples in the same category

1.Use std::merge to merge elements in two elements into the third one in sorted order
2.Use merge with back_inserter
3.Merge two containers
4.sum the ranges by using merge()
5.Demonstrating the generic merge algorithm with an array, a list, and a deque
6.Generic merge algorithm: merge parts of an array and a deque, putting the result into a list
7.Merge a vector with deque
8.Merge in place