如何比较两组中的第一个"n"元素是否相等?我的以下程序不起作用,为什么?
#include <iostream>
#include <iterator>
#include <set>
#include<algorithm>
using namespace std;
int main ()
{
int n = 2;
int myints1[] = {75,23,65,42,13};
int myints2[] = {70,23,65,42,13};
set<int> myset1 (myints1,myints1+5);
set<int> myset2 (myints2,myints2+5);
if(std::equal(myset1.begin(),myset1.begin() + n ,myset2.begin())) //error
std::copy(std::myset1.begin(),myset1.begin() + n,ostream_iterator<int>(cout," ")); //error
cout << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
更新:
有没有办法比较一个特定的元素?谢谢.
std :: set迭代器是双向的,而不是随机访问.你不能begin() + n跟他们说.相反,你可能想要使用std::advance.
std::set<int>::iterator it(myset1.begin());
std::advance(it,n);
if(std::equal(myset1.begin(),it,myset2.begin()))
std::copy(myset1.begin(),it,ostream_iterator<int>(cout," "));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |