size_C = sizeof(C)/sizeof(C[0]);
v.resize(size_Asize_B);
sort (A, A size_A);
sort (B, B size_B);
it = set_intersection (A, Asize_A, B, Bsize_B, v.begin());
v.resize(it-v.begin());
cout << "The intersection has " << (v.size())<< " elements:" << endl;
for (it=v.begin(); it!=v.end(); it)
cout << ' ' << *it;
cout << endl;
if(size_C < v.size())
{
cout << "Array C is too small." << endl;
}
else
{
copy(v.begin(), v.end(), C);
cout << "The array of C is:" << endl;
for (int i = 0; i < v.size(); i )
cout << ' ' << C[i];
cout << endl;
}
return 0;
}
输出结果:
The intersection has 2 elements:
1020
The array of C is:
10 20
#include <vector>
删除所有相邻的重复元素
#include <cassert>
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <iterator>
using namespace std;
int main()
{
const int N=11;
int array1[N]={1,2,0,3,3,0,7,7,7,0,8};
vector<int> vector1;
for (int i=0;i<N;i)
vector1.push_back(array1[i]);
vector<int>::iterator new_end;
new_end=unique(vector1.begin(),vector1.end()); //"删除"相邻的重复元素
assert(vector1.size()==N);//assert相当于if,在#include <cassert>头文件中
vector1.erase(new_end,vector1.end());//删除(真正的删除)重复的元素
copy(vector1.begin(),vector1.end(),ostream_iterator<int>(cout,""));
cout<<endl;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-34960-15.html
为什么还会失败