当前位置: 首页>>代码示例>>C++>>正文


C++ Tags::getList方法代码示例

本文整理汇总了C++中Tags::getList方法的典型用法代码示例。如果您正苦于以下问题:C++ Tags::getList方法的具体用法?C++ Tags::getList怎么用?C++ Tags::getList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Tags的用法示例。


在下文中一共展示了Tags::getList方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: _mergeText

void TagComparator::_mergeText(Tags& t1, Tags& t2, Tags& result)
{
  OsmSchema& schema = OsmSchema::getInstance();

  const Tags t1Copy = t1;
  for (Tags::ConstIterator it1 = t1Copy.begin(); it1 != t1Copy.end(); ++it1)
  {
    const SchemaVertex& tv = schema.getTagVertex(it1.key());

    // if this is a text field and it exists in both tag sets.
    if (tv.valueType == Text && t2.contains(it1.key()))
    {
      // only keep the unique text fields
      QStringList values = t1.getList(it1.key());
      values.append(t2.getList(it1.key()));

      // append all unique values in the existing order.
      for (int i = 0; i < values.size(); i++)
      {
        if (values[i].isEmpty() == false)
        {
          result.appendValueIfUnique(it1.key(), values[i]);
        }
      }

      t1.remove(it1.key());
      t2.remove(it1.key());
    }
  }
}
开发者ID:bpross-52n,项目名称:hootenanny,代码行数:30,代码来源:TagComparator.cpp

示例2:

QSet<QString> TagComparator::_toSet(const Tags& t, const QString& k)
{
  Tags::const_iterator it = t.find(k);
  if (OsmSchema::getInstance().isList(k, *it))
  {
    return QSet<QString>::fromList(t.getList(k));
  }
  else
  {
    QSet<QString> result;
    result.insert(*it);
    return result;
  }
}
开发者ID:bpross-52n,项目名称:hootenanny,代码行数:14,代码来源:TagComparator.cpp

示例3: _mergeExactMatches

void TagComparator::_mergeExactMatches(Tags& t1, Tags& t2, Tags& result)
{
  OsmSchema& schema = OsmSchema::getInstance();

  Tags t1Copy = t1;
  for (Tags::ConstIterator it1 = t1Copy.begin(); it1 != t1Copy.end(); ++it1)
  {
    bool keepIt = false;
    Tags::const_iterator it2 = t2.find(it1.key());
    if (it2 != t2.end())
    {
      if (schema.isList(it1.key(), it1.value()))
      {
        // treat the inputs as unordered lists
        QSet<QString> values1 = QSet<QString>::fromList(t1.getList(it1.key()));
        QSet<QString> values2 = QSet<QString>::fromList(t2.getList(it2.key()));
        values1.intersect(values2);
        if (values1.size() == values2.size())
        {
          keepIt = true;
        }
      }
      else if (it2.value() == it1.value())
      {
        keepIt = true;
      }

      if (keepIt)
      {
        result[it1.key()] = it1.value();
        t1.remove(it1.key());
        t2.remove(it1.key());
      }
    }
  }
}
开发者ID:bpross-52n,项目名称:hootenanny,代码行数:36,代码来源:TagComparator.cpp


注:本文中的Tags::getList方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。