当前位置:  开发笔记 > 编程语言 > 正文

在一组中保存一堆const char*的最简单,最安全的方法?

如何解决《在一组中保存一堆constchar*的最简单,最安全的方法?》经验,为你挑选了1个好方法。

我想把一堆const char指针放到std :: set容器[1]中.std :: set模板需要比较器函数,标准C++库提供std :: less,但它的实现基于直接比较两个键,这不是指针的标准.

我知道我可以定义自己的仿函数并通过将指针转换为整数并比较它们来实现operator(),但是有一种更清晰,"标准"的方法吗?

请不要建议创建std :: strings - 这是浪费时间和空间.字符串是静态的,因此可以根据它们的地址比较(in)相等.

1:指针是静态字符串,因此它们的生命周期没有问题 - 它们不会消失.



1> Adam Rosenfi..:

如果您不想将它们包装在std::strings中,您可以定义一个仿函数类:

struct ConstCharStarComparator
{
  bool operator()(const char *s1, const char *s2) const
  {
    return strcmp(s1, s2) < 0;
  }
};

typedef std::set stringset_t;
stringset_t myStringSet;

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有