C++/Vector/vector merge

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

Merge two vectors

  
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
void print(int elem)
{
  cout << elem << " ";
}
int main(int argc, char** argv)
{
  vector<int> v1, v2, vectorMerged;
  v1.push_back(1);
  v1.push_back(2);
  v1.push_back(3);
  v2.push_back(2);
  v2.push_back(3);
  v2.push_back(4);
  sort(v1.begin(), v1.end());
  sort(v2.begin(), v2.end());
  vectorMerged.resize(v1.size() + v2.size());
  merge(v1.begin(), v1.end(), v2.begin(),v2.end(), vectorMerged.begin());
  cout << "Merged vector: ";
  for_each(vectorMerged.begin(), vectorMerged.end(), &print);
  return (0);
}


Merge two vectors with merge(scores.begin(), scores.end(),moreScores.begin(), moreScores.end(),allScores.begin())

  
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
    vector<int>::const_iterator iter;
    vector<int> scores;
    scores.push_back(1);
    scores.push_back(3);
    scores.push_back(5);
    for (iter = scores.begin(); iter != scores.end(); ++iter)
        cout << *iter << endl;
    vector<int> moreScores;
    moreScores.push_back(2);
    moreScores.push_back(4);
    moreScores.push_back(8);
    for (iter = moreScores.begin(); iter != moreScores.end(); ++iter)
        cout << *iter << endl;
    vector<int> allScores(6);  //need container big enough to hold results
    merge(scores.begin(), scores.end(),moreScores.begin(), moreScores.end(),allScores.begin());
    for (iter = allScores.begin(); iter != allScores.end(); ++iter)
        cout << *iter << endl;
 return 0;
}