结构体变量和结构体指针的区别及pair的使用

C++ pair的使用
  1. pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。
    另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second。
    pair包含两个数值,与容器一样,pair也是一种模板类型。
    pair<string, int> word_count; // 创建一个空对象 word_count, 两个元素类型分别是string和int类型
    pair<string, vector > line; // 创建一个空对象line,两个元素类型分别是string和vector类型

  2. 还可以利用make_pair创建新的pair对象:
    pair<int, double> p1;
    p1 = make_pair(1, 1.2);

结构体变量和结构体指针的区别

struct node s;
s.name // 结构变量访问成员的方式
s->name //这样是错误的
struct node* p;
p->name // 结构体指针访问结构体成员的方式
(*p).name // 当然结构体指针也可以使用成员运算符但需要先取值, 但一般人不这样用

  1. 如:
    std::multimap<double, GridNodePtr> openSet; // multimap 多对多映射 需要和 pair 联合使用
    openSet.insert( make_pair(neighborPtr -> fScore, neighborPtr));

  2. 注意: 成员访问 . 和 -> 的运算符 高于 指针访问 * 的运算符
    mid_idx = (*openSet.begin()).second->index;

    mid_idx = (openSet.begin())->second->index; 两者等价

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值