求问大佬们以下c++代码的这个简单的迭代器相减为什么会报错
#include <iostream>
#include<vector>
#include<set>
#include<algorithm>
#include<functional>
using namespace std;
vector<int> vi;
set<int> testSet;
int main()
{
testSet.insert(3);
testSet.insert(5);
int a = testSet.find(5) - testSet.begin();//此行报错,此行为第13行
printf("%d",a);
//cout << "Hello world!" << endl;
return 0;
}
以上代码中第13行报错error: no match for 'operator-' (operand types are 'std::set<int>::iterator' {aka 'std::_Rb_tree_const_iterator<int>'} and 'std::set<int>::iterator' {aka 'std::_Rb_tree_const_iterator<int>'})|
#include <iostream>
#include<vector>
#include<set>
#include<algorithm>
#include<functional>
using namespace std;
vector<int> vi;
set<int> testSet;
int main()
{
testSet.insert(3);
testSet.insert(5);
int a = testSet.find(5) - testSet.begin();//此行报错,此行为第13行
printf("%d",a);
//cout << "Hello world!" << endl;
return 0;
}
以上代码中第13行报错error: no match for 'operator-' (operand types are 'std::set<int>::iterator' {aka 'std::_Rb_tree_const_iterator<int>'} and 'std::set<int>::iterator' {aka 'std::_Rb_tree_const_iterator<int>'})|