疑惑
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void main()
{
vector<int > v1,v2,v3;
for(int i=0;i<5;i++)
{
v1.push_back(i);
v2.push_back(i+10);
}
v3.reserve(10);
merge(v1.begin(),v1.end(),v2.begin(),v2.end(),v3.begin());
sort(v3.begin(),v3.end());
while(!v3.empty())
{
cout<<v3.back()<<" ";
v3.pop_back();
}
cout<<endl;
}
为什么v3输出为空,望高手解答!!
[解决办法]
v3.assign(10);
[解决办法]
merge函数是干嘛的, 是不是得v3.assign(20)啊, merge应该是赋值, 不是构造, 所以不要用reserve,用assign
[解决办法]
- C/C++ code
#include<iostream>#include<vector>#include<algorithm>#include <iterator>using namespace std;int main(){vector<int > v1,v2,v3;for(int i=0;i<5;i++){v1.push_back(i);v2.push_back(i+10);}merge(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v3));sort(v3.begin(),v3.end());while(!v3.empty()){cout<<v3.back()<<" ";v3.pop_back();}cout<<endl;return 0;}
[解决办法]
- C/C++ code
void main() { vector<int > v1,v2,v3(10); for(int i=0;i<5;i++) { v1.push_back(i); v2.push_back(i+10); } // v3.reserve(10); merge(v1.begin(),v1.end(),v2.begin(),v2.end(),v3.begin()); sort(v3.begin(),v3.end()); while(!v3.empty()) { cout<<v3.back()<<" "; v3.pop_back(); } cout<<endl; }