【发布时间】:2015-10-14 00:49:44
【问题描述】:
我有一组 Team 类型的元素。我想编写一个函数来返回给定元素的地址。 get_team 函数获取一个 id 并通过 Team 类函数“is_team”进行比较,如果该 Team 对象具有相同的 id,则该函数返回布尔值“true”。
1 string TeamA = "ABC";
2 Team A = get_team(TeamA);
3
4 const Team & get_team(string id) {
5 for (set<Team>::iterator iter = teams_.begin(); iter != teams.end(); ++iter){
6 Team team = *iter;
7 if (team.is_team(id)){
8 return *iter;
9 }
10 }
11 }
运行时,*iter 的地址(第 6 行,第 8 行)是正确的,并且与存储在集合 'teams_' 中的 Team 对象的地址匹配。 但是,当函数返回时地址不同(第 2 行)。
*iter 正确显示的元素地址是:0x0048e930 A组的地址是:0x0039f47c
我如何获得正确的地址? (如何将A组的地址设为0x0048e930?)
【问题讨论】:
-
听起来你想使用地图而不是集合..