我想使用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++很新.
如何在地图中使用一对作为键?一般而言,我如何使用任何类型的结构(对象,结构等)作为地图中的键?
谢谢!
在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中实现字典?
我在开发算法以确定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) 我有+ 10k点(纬度,经度),我正在构建一个应用程序,向您显示距离用户位置最近的k点.
我认为这是一个非常普遍的问题,我不想重新发明轮子.我正在学习四叉树.这似乎是解决这个空间问题的好方法.
我正在使用这些工具:
构建Quadtree并不难:http://donar.umiacs.umd.edu/quadtree/points/pointquad.html但是一旦我创建了树并将其保存到db(MySQL或MongoDb),我如何运行查询?
我需要运行这样的查询:
这样做的标准和常用方法是什么?
编辑1:
我已经将+ 10k点加载到MongoDB(地理空间索引)中,乍一看它运行正常.无论如何我发现PostGis:
PostGIS是PostgreSQL对象 - 关系数据库系统的扩展,它允许GIS(地理信息系统)对象存储在数据库中.
所以我想我会试试PostGis.
我也找到了SimpleGeo.您可以在云中存储点/位置,然后通过API查询它们:https://simplegeo.com/docs/tutorials/python#how-do-radial-nearby-query
python ×2
algorithm ×1
c ×1
c++ ×1
dictionary ×1
geospatial ×1
map ×1
spatial ×1
std-pair ×1
stl ×1