C++/Vector/vector merge

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

Merge two vectors

<source lang="cpp">

  1. include <algorithm>
  2. include <vector>
  3. 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);

}


 </source>


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

<source lang="cpp">

  1. include <iostream>
  2. include <vector>
  3. include <algorithm>
  4. include <ctime>
  5. 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;

}


 </source>