字符串拼接效率、二叉树数组存储、map的使用、字符转字符串、bitset

本文探讨了字符串拼接的效率问题,强调了push_back和append方法。介绍了二叉树数组存储索引的概念,阐述了父节点与子节点的关系。接着讲解了map在数据操作中的应用,并讨论了如何将字符转换为字符串。最后提到了bitset的使用场景。
摘要由CSDN通过智能技术生成

字符串拼接

  • + 拼接, 时间啊空间复杂度均很高, 因为需要重新开辟内存依次合并两个字符串
  • push_back(char) 在字符串结尾添加字符
  • append(str) 在字符串结尾添加另一个字符串
string s = "";
s+="a";
s.push_back('a');
s.append("dd").append("cc").push_back('a');
cout<<s<<endl;

二叉树数组存储索引

  • n为数组中结点下标, m为0-n之间空结点个数
  • 当把树存储到数组中时(叶子结点的两个NULL子结点也存储), 父子结点关系如下.

图片来源力扣用户@Krahets

在这里插入图片描述

map的使用

class CMP
{
public:
    bool operator()(pair<string, int>& p1, pair<string, int>& p2) const
    {
        if(p1.second == p2.second)
            return p1.first < p2.first;
        return p1.second > p2.second;
    }
};
int main()
{
    // map只能针对key进行排序, 不能针对value进行排序. 同时仿函数重载()运算符需要时const
    // map<string, int, CMP> mp // CMP重载的参数应该是string, 不应该死pair
    map<string, int> mp;
    mp["i"]++;
    mp["love"]++;
    mp["leetcode"]++;
    mp["i"]++;
    mp["love"]++;
    mp["coding"]++;
    mp["am"]++;
    // map 的迭代器不是随机存取迭代器, 不能进行+-操作, 因此不能用sort排序
    // sort(mp.begin(), mp.end(), CMP());
    for(auto p : mp)
        cout<<p.first<<" "<<p.second<<endl;
    return 0;
}

字符转字符串

char letter = 'a';
string s = to_string(letter); //97  因为to_string接收数字, 把数字转换为字符串, 字符会先转换为ASCII

// 两种正确的方法
string str(1, letter);
string str; str.push_back(letter);

bitset

bitset的使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值