C++STL的问题。帮忙解释下。
#include<iostream>#include<set>#include<algorithm>usingnamespacestd;voidmain(){multis...
#include <iostream>
#include <set>
#include <algorithm>
using namespace std;
void main()
{
multiset<int , less<int> > intSet;
intSet.insert(7);
intSet.insert(5);
intSet.insert(1);
intSet.insert(5);
intSet.insert(7);
cout << "Set:" << " ";
multiset<int , less<int> >::iterator it =intSet.begin();
for(int i=0;i<intSet.size();++i)
cout << *it++ << ' ';
cout << endl;
cout << "第一次匹配:";
it=adjacent_find(intSet.begin(),intSet.end());
cout << *it++ << ' ';
cout<< *it << endl;
cout << "第二次匹配:";
it=adjacent_find(it,intSet.end());
cout << *it++ << ' ';
cout << *it << endl;
}
里面的*it++是怎么回事??
for(int i=0;i<intSet.size();++i)
cout << *it++ << ' ';
解释解释。。。
为什么i<intset.size(); 这个是什么意思。。 展开
#include <set>
#include <algorithm>
using namespace std;
void main()
{
multiset<int , less<int> > intSet;
intSet.insert(7);
intSet.insert(5);
intSet.insert(1);
intSet.insert(5);
intSet.insert(7);
cout << "Set:" << " ";
multiset<int , less<int> >::iterator it =intSet.begin();
for(int i=0;i<intSet.size();++i)
cout << *it++ << ' ';
cout << endl;
cout << "第一次匹配:";
it=adjacent_find(intSet.begin(),intSet.end());
cout << *it++ << ' ';
cout<< *it << endl;
cout << "第二次匹配:";
it=adjacent_find(it,intSet.end());
cout << *it++ << ' ';
cout << *it << endl;
}
里面的*it++是怎么回事??
for(int i=0;i<intSet.size();++i)
cout << *it++ << ' ';
解释解释。。。
为什么i<intset.size(); 这个是什么意思。。 展开
3个回答
展开全部
it 是迭代器。这个循环其实让iterator一个个的加上去,然后*解引用按multiset的顺序输出。size()函数返回 intSet 的大小。 i<intset.size(); 就是把这个容器循环输出一遍
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
迭代器自加,迭代器指向multiset中某一元素,然后++就是让他指向下一个元素,i<intset.size(); 就是当i小于intset的大小的时候。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
++比*优先级高——先*it,在it++
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询