【问题标题】:How to filter information from a list of structs如何从结构列表中过滤信息
【发布时间】:2020-08-28 02:32:57
【问题描述】:

我有一个这样的结构列表list<color> colorList;

  `  struct color {
       int r;
       int g;
       int b;
     }`

我的要求是要有一张地图,但要能够查找具有相同 RGB 值的“颜色”。 例如。 r=128,g=128,b=0 的所有“颜色”。

我的直觉是创建一个映射,其键是 r,g,b,值是 RGB 值匹配的结构。

我正在寻找 C++ 中的性能最优解决方案。

【问题讨论】:

  • 您说您需要“查找颜色”,但是您希望在颜色上附加哪些附加信息?现在您只是再次存储color,但std::map<color, color> 包含与std::set<color> 相同的信息。
  • 您好 Botje,我想我的问题并不清楚。我的查询可能是 'retrieve all with r=128'。它应该检索与该条件匹配的所有结构,而与 b,g 值无关。
  • @Vijay 你确定要实现地图吗?或者也许是一套?用地图和设置键是唯一的。但是你想要吗?也许您只需要在列表中找到color 对象。
  • @jignatius 我不需要使用地图。我需要根据部分匹配的值(例如只有红色 = 128)获取颜色对象。

标签: c++ list dictionary struct


【解决方案1】:

我会使用一个名为 Linq 的库,在 c# 中,它允许您过滤数据库查询的结果。 该库称为 Linq++ (https://github.com/hjiang/linqxx/wiki),对于您的代码,如果颜色大于您搜索的颜色,您应该使用名为 where 和 filter 的方法。 允许您搜索多个条件的方法,例如 red > 128 & green > 128

【讨论】:

    猜你喜欢
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 2019-08-13
    • 2017-04-19
    • 2013-07-04
    相关资源
    最近更新 更多