请问一下迭代器中的second()是做什么的?

 我来答
A1620921354
2020-04-26 · TA获得超过5813个赞
知道答主
回答量:388
采纳率:100%
帮助的人:16.7万
展开全部

map容器的迭代器里面有first ()和 second(),second是值,用来返回数据。

例如:

map<string, int> m;

m["one"] = 1;

map<string, int>::iterator p = m.begin();

p->first; // 这个是  string  值是 "one"

p->second; //这个是 int 值是 1

std::map<X, Y>实际储存了一串std::pair<const X, Y>,std::map<std::string, int> m = /* fill it */;、auto it = m.begin();

这里,如果你用*it,那么你将得到map第一个元素的std::pair,现在你可以接收std::pair的两个元素:,(*it).first会得到key,(*it).second会得到value,这等同于it->first和it->second。

扩展资料:

Iterator在Collection接口中的使用。

虽然Collection接口的相关类实现了get()方法,但将Iterator用在它们身上仍然是合适的,下面以ArrayList为例,讨论Iterator在Collection中的两中使用方法

1、配合while()循环实现遍历输出:  

ArrayList list = new ArrayList();

Iterator it = list.iterator();

while(it.hasNext()){

System.out.println(it.next());6}

while()中的判断条件it.hasNext()用于判断it中是否还有下一元素,有的话就继续循环,输出语句中的it.next()既可以使“指针”往后走一位,又能将当前的元素返回,用于输出。

2、配合for()循环实现遍历输出:

ArrayList list = new ArrayList();

for(Iterator it = list.iterator();it.hasNext();){

System.out.println(it.next()); }

monkeyde17
推荐于2017-11-28 · TA获得超过207个赞
知道答主
回答量:118
采纳率:0%
帮助的人:124万
展开全部
c++ 里面的map容器的迭代器里面 有个first 和 second
例如
map<string, int> m;
m["one"] = 1;

map<string, int>::iterator p = m.begin();
p->first; // 这个是 string 值是 "one"
p->second; //这个是 int 值是 1
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
4fn
2012-07-25 · TA获得超过183个赞
知道答主
回答量:59
采纳率:0%
帮助的人:87.7万
展开全部
是std::map的iterator? map里头的元素是std::pair<Type1, Type2>,用first访问std::pair的第一个成员(Type1), second访问第二个成员(Type2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式