C/C++中.与->的用法区别(例题:字母异位词分组)

在上课的时候我很迷惑,为什么课上有的代码用的是. 有的用的是->,这两者有什么区别?
比如说这个

return bitree->left;

和这个

return string.length();

我将其区别分为两方面:访问方式和返回类型

标题访问方式:

"."运算符用于访问对象的成员。例如,如果有一个类Person,其中有一个成员变量name,那么可以使用person.name来访问这个变量。
"->"运算符用于通过指针访问对象的成员。例如,如果有一个指向Person类的指针,并且该指针指向一个具有name成员的对象,那么可以使用person->name来访问这个变量。

返回类型:

".“运算符返回的是被访问对象的类型。例如,如果使用”."运算符访问一个对象,那么返回的就是该对象本身。
"->“运算符返回的是指向被访问对象的指针。例如,如果使用”->"运算符通过指针访问一个对象,那么返回的就是指向该对象的指针。

字母异位词分组(力扣)

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:
输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
输出:
[[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]
示例 2:
输入: strs = [“”]
输出: [[“”]]
示例 3:
输入: strs = [“a”]
输出: [[“a”]]

提示:

1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i] 仅包含小写字母

解决思路:
在这道题中,难点在于如何找到字母组成相同的字符串并把它们归为一类,那么我们可以将字符串排序,排序后有相同字母组成的字符串应该完全一样,那么我们可以将其放到一类

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
            unordered_map<string,vector<string>> mp;
            for(string str : strs)
            {
                string key = str;
                sort(key.begin(),key.end());
                mp[key].emplace_back(str);
            }
            vector<vector<string>> ans;
            for(auto it = mp.begin();it != mp.end();it ++)
            {
                ans.emplace_back(it->second);
            }
            return ans;
    }
};
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值