#include <iostream >
#include <algorithm >
#include <vector >
using namespace std;
int main()
{
int a[3]={1,2,3},y[3]={6,7,8};
vector <int > vec(a,a+3); //存储数组a[]的元素到vec中去
vector <int > vec1(y,y+3); //存储数组y[]的元素到vec中去
vector <int > vec2;
int b[100];
for(int i=0;i <vec.size()-1;i++){
vec2.push_back(vec[i]);//将a元素结果存入vec2中
}
for( i=0;i <vec1.size()-1;i++){
vec2.push_back(vec1[i]);//将y元素结果存入vec2中
}
sort(vec2.begin(),vec2.end()); //将VEC2里的元素排序
unique(vec2.begin(),vec2.end());//将重复的元素去掉
unique_copy(vec2.begin(),vec2.end(),b);//将元素copy到数组b[]中去
for(i=0;i <vec2.end()-vec2.begin()-1;i++) //显示最终结果
cout <<b[i] <<' ';
return 0;
} 在vc++6.0下预定的结果为1,2,3,6,7,8
为什么结果却是1,2,6 请帮忙指点.
#include <algorithm >
#include <vector >
using namespace std;
int main()
{
int a[3]={1,2,3},y[3]={6,7,8};
vector <int > vec(a,a+3); //存储数组a[]的元素到vec中去
vector <int > vec1(y,y+3); //存储数组y[]的元素到vec中去
vector <int > vec2;
int b[100];
for(int i=0;i <vec.size()-1;i++){
vec2.push_back(vec[i]);//将a元素结果存入vec2中
}
for( i=0;i <vec1.size()-1;i++){
vec2.push_back(vec1[i]);//将y元素结果存入vec2中
}
sort(vec2.begin(),vec2.end()); //将VEC2里的元素排序
unique(vec2.begin(),vec2.end());//将重复的元素去掉
unique_copy(vec2.begin(),vec2.end(),b);//将元素copy到数组b[]中去
for(i=0;i <vec2.end()-vec2.begin()-1;i++) //显示最终结果
cout <<b[i] <<' ';
return 0;
} 在vc++6.0下预定的结果为1,2,3,6,7,8
为什么结果却是1,2,6 请帮忙指点.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
int a[3]={1,2,3},y[3]={6,7,8};
vector <int> vec(a,a+3); //存储数组a[]的元素到vec中去
vector <int> vec1(y,y+3); //存储数组y[]的元素到vec中去
vector <int> vec2;
int b[100];
for(int i=0;i<vec.size();i++)
{
vec2.push_back(vec[i]);//将a元素结果存入vec2中
}
for( i=0;i<vec1.size();i++)
{
vec2.push_back(vec1[i]);//将y元素结果存入vec2中
}
sort(vec2.begin(),vec2.end()); //将VEC2里的元素排序
unique(vec2.begin(),vec2.end());//将重复的元素去掉
unique_copy(vec2.begin(),vec2.end(),b);//将元素copy到数组b[]中去
for(i=0;i<vec2.end()-vec2.begin();i++) //显示最终结果
cout<<b[i]<<' ';
return 0;
} 大哥,I 服了 You!
#include <iostream >
#include <algorithm >
#include <vector >
using namespace std;
int main()
{
int a[4]={34,56,78,90};
vector <int > vec(a,a+4); //存储数组a[]的元素到vec中去
vector <int > vec2;
int b[100];
for(int i=0;i <vec.size()-1;i++){
for(int j=i+1;j <vec.size();j++)
vec2.push_back(abs(vec[i]-vec[j]));//将相减的结果存入vec2中
}
sort(vec2.begin(),vec2.end()); //将VEC2里的元素排序
unique(vec2.begin(),vec2.end());//将重复的元素去掉
unique_copy(vec2.begin(),vec2.end(),b);//将元素copy到数组b[]中去
for(i=0;i <vec2.end()-vec2.begin();i++) //显示最终结果
cout <<b[i] <<' ';
return 0;
}
是将一个数组中不同元素两两相减,取正数值,去掉相同数,放入另一数组;
这段代码的结果应为:12,22,44,66
而程序运行后结果为: 12,22,34,44,56,-85993460 这是为什么?