小编cca*_*erg的帖子

在地图中使用pair作为键(C++/STL)

我想使用STL中的一对作为地图的关键.

#include <iostream>
#include <map>

using namespace std;

int main() {

typedef pair<char*, int> Key;
typedef map< Key , char*> Mapa;

Key p1 ("Apple", 45);
Key p2 ("Berry", 20);

Mapa mapa;

mapa.insert(p1, "Manzana");
mapa.insert(p2, "Arandano");

return 0;

}
Run Code Online (Sandbox Code Playgroud)

但是编译器会抛出一堆不可读的信息,而且我对C和C++很新.

如何在地图中使用一对作为键?一般而言,我如何使用任何类型的结构(对象,结构等)作为地图中的键?

谢谢!

c++ stl map std-pair

32
推荐指数
3
解决办法
7万
查看次数

如何在C中表示类似Python的字典

在Python中很简单:

x = {}
x['USD'] = "Dollars"
x['CLP'] = "Pesos"
Run Code Online (Sandbox Code Playgroud)

要么

y = {'lat': 23.678900, 'lng': 121.451928, 'name': "Sin City"}
Run Code Online (Sandbox Code Playgroud)

我认为这些问题大部分已经解决了,那么我在哪里可以获得有关C中词典的信息?我不想重新发明轮子.

如何在C中实现字典?

c dictionary

8
推荐指数
1
解决办法
6956
查看次数

确定n个元素列表的最小值

我在开发算法以确定n个元素列表的最小值时遇到了一些麻烦.找不到长度为n的数组的最小值并非如此,这很简单:

min = A[0]
for i in range(1, len(A)):
    if min > A[i]: min = A[i]
print min
Run Code Online (Sandbox Code Playgroud)

但我的列表包含对象:

class Object:
    def __init__(self, somelist):
        self.classification = somelist[0] # String
        self.type           = somelist[1] # String
        self.first          = somelist[2] # Integer
        self.last           = somelist[3] # Integer
Run Code Online (Sandbox Code Playgroud)

而对于同样的'分类| 类型'对象我有m个元素,我想找到相同'分类|的最小元素 通过比较第一个和最后一个之间的差异来输入'.

例:

obj1 = Object(['A', 'x', 4, 17])
obj2 = Object(['A', 'y', 5, 20])
obj3 = Object(['B', 'z', 10, 27])
obj4 = Object(['B', 'z', 2, 15])
obj5 = Object(['B', 'z', 20, 40])
obj6 = …
Run Code Online (Sandbox Code Playgroud)

python algorithm

4
推荐指数
1
解决办法
600
查看次数

空间索引/查询(找到k个最近点)

我有+ 10k点(纬度,经度),我正在构建一个应用程序,向您显示距离用户位置最近的k点.

我认为这是一个非常普遍的问题,我不想重新发明轮子.我正在学习四叉树.这似乎是解决这个空间问题的好方法.

我正在使用这些工具:

  • Python 2.5
  • MySQL的
  • MongoDB的

构建Quadtree并不难:http://donar.umiacs.umd.edu/quadtree/points/pointquad.html但是一旦我创建了树并将其保存到db(MySQL或MongoDb),我如何运行查询?

我需要运行这样的查询:

  1. 查找距离用户所在位置10公里范围内的所有点.
  2. 找到用户所在位置的6个(或至少6个)最近点.

这样做的标准和常用方法是什么?

编辑1:

我已经将+ 10k点加载到MongoDB(地理空间索引)中,乍一看它运行正常.无论如何我发现PostGis:

PostGIS是PostgreSQL对象 - 关系数据库系统的扩展,它允许GIS(地理信息系统)对象存储在数据库中.

所以我想我会试试PostGis.

我也找到了SimpleGeo.您可以在云中存储点/位置,然后通过API查询它们:https://simplegeo.com/docs/tutorials/python#how-do-radial-nearby-query

python spatial geospatial spatial-query spatial-index

2
推荐指数
1
解决办法
3101
查看次数