首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

疑惑,该如何解决

2012-05-28 
疑惑#includeiostream#includevector#includealgorithmusing namespace stdvoid main(){vectorint

疑惑
#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; } 

热点排行