Some proble on " merge() on vector "
Hi, guys~
I randomly tapped some *int* number into 2 text files:
test_1.txt:
3 20 16 13 12 11 10 9 20 36 15 1547 13 46 156741 13461 6541 3134564 13
1564 1315 464 13247 1549
test_2.txt:
45 6413 21 456 461 38 794 131 654 64 4321 314 654 615 3134654 4564 1
31 346 54
my code is below:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
int main()
{
ifstream fin_1("test_1.txt"), fin_2("test_2.txt");
int ii;
vector<int> vi_1, vi_2;
while(fin_1>>ii)
vi_1.push_back(ii);
sort(vi_1.begin(), vi_1.end());
//to check whether vi_1 is right
for(vector<int>::iterator iter=vi_1.begin(); iter!=vi_1.end(); +
+iter)
cout<<*iter<<'\t';
cout<<endl;
while(fin_2>>ii)
vi_2.push_back(ii);
sort(vi_2.begin(), vi_2.end());
for(vector<int>::iterator iter=vi_2.begin(); iter!=vi_2.end(); +
+iter)
cout<<*iter<<'\t';
cout<<endl;
vector<int> vi_3;
//I don't know whether this is needed.*reserve*
vi_3.reserve(100);
// could I replace *vi_3.begin()* to *vi_1.begin()*?
I just wanna use vi_1 .
merge(vi_1.begin(), vi_1.end(), vi_2.begin(), vi_2.end(),
vi_3.begin());
// to know the size of vi_3
int count;
for(vector<int>::iterator iter=vi_3.begin(); iter!=vi_3.end(); +
+iter)
{
++count;
cout<<*iter<<endl;
}
// the *count* came out to be 206856 . I don't know
why.
cout<<count<<endl;
}
//: IDE: DEV C++ 4.9.9.2
//:~
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
But this didn't work.
Maybe the code is not right. My meant to merge vi_1 and vi_2 to
vi_1.
I wrote this source code to test the *merge()* problem which also
appeared in anothe project.
Thanks for your advices !
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]