Questions tagged «map»

字典将键映射到值,从而可以从键中高效地检索值。USE [map-function]标签,用于在数据上映射函数,请;对于地理,[地图]。

13
与std :: map等效的remove_if
我试图根据特定条件从地图中删除一系列元素。我该如何使用STL算法? 最初我想使用,remove_if但是由于remove_if对于关联容器不起作用,因此无法使用。 是否有适用于地图的“ remove_if”等效算法? 作为一个简单的选择,我想到了遍历映射和擦除。但是在地图上循环并擦除一个安全的选项吗?(因为迭代器在擦除后变得无效) 我使用以下示例: bool predicate(const std::pair<int,std::string>& x) { return x.first > 2; } int main(void) { std::map<int, std::string> aMap; aMap[2] = "two"; aMap[3] = "three"; aMap[4] = "four"; aMap[5] = "five"; aMap[6] = "six"; // does not work, an error // std::remove_if(aMap.begin(), aMap.end(), predicate); std::map<int, std::string>::iterator iter …
118 c++  stl  map 


10
如何在C ++中初始化私有静态const映射?
我只需要字典或关联数组string=>即可int。 这种情况下有类型映射C ++。 但是对于所有实例,我只需要一个映射(->静态),并且该映射不能更改(-> const); 我已经在Boost库中找到了这种方式 std::map<int, char> example = boost::assign::map_list_of(1, 'a') (2, 'b') (3, 'c'); 没有这个库,还有其他解决方案吗?我已经尝试过类似的方法,但是地图初始化总是存在一些问题。 class myClass{ private: static map<int,int> create_map() { map<int,int> m; m[1] = 2; m[3] = 4; m[5] = 6; return m; } static map<int,int> myMap = create_map(); };

3
Java中的Map的浅表副本
据我了解,有几种方法(可能也有其他方法)Map在Java中创建a的浅表副本: Map<String, Object> data = new HashMap<String, Object>(); Map<String, Object> shallowCopy; // first way shallowCopy = new HashMap<String, Object>(data); // second way shallowCopy = (Map<String, Object>) ((HashMap<String, Object>) data).clone(); 一种方法优于另一种方法吗?如果是,为什么? 值得一提的是,第二种方式会发出“未经检查的演员表”警告。因此,您必须添加内容@SuppressWarnings("unchecked")来解决它,这有点恼人(请参阅下文)。 @SuppressWarnings("unchecked") public Map<String, Object> getDataAsMap() { // return a shallow copy of the data map return (Map<String, Object>) ((HashMap<String, …
106 java  map  clone  shallow-copy 

2
boost :: flat_map及其与map和unordered_map相比的性能
编程中的常识是,由于缓存命中,内存局部性可以大大提高性能。我最近发现了boost::flat_map哪个是基于矢量的地图实现。它似乎不像您典型的map/ 那样流行,unordered_map因此我无法找到任何性能比较。它如何比较?最佳的用例是什么? 谢谢!
103 c++  boost  map 

25
Java HashMap性能优化/替代
我想创建一个大型HashMap,但put()性能不够好。有任何想法吗? 欢迎其他数据结构建议,但我需要Java Map的查找功能: map.get(key) 就我而言,我想创建一个包含2600万个条目的地图。使用标准的Java HashMap,插入2到3百万次后,放置速度会变得异常缓慢。 另外,有人知道对密钥使用不同的哈希码分布是否有帮助? 我的哈希码方法: byte[] a = new byte[2]; byte[] b = new byte[3]; ... public int hashCode() { int hash = 503; hash = hash * 5381 + (a[0] + a[1]); hash = hash * 5381 + (b[0] + b[1] + b[2]); return hash; } …

4
运行时错误:分配给nil映射中的条目
我正在尝试生成地图,然后将其转换为如下所示的yaml文件: uid : kasi: cn: Chaithra street: fkmp nandan: cn: Chaithra street: fkmp remya: cn: Chaithra street: fkmp 我想我在创建地图时缺少重要的东西。我的代码如下。 package main import ( "fmt" "gopkg.in/yaml.v2" ) type T struct { cn string street string } func main() { names := []string{"kasi", "remya", "nandan"} m := make(map[string]map[string]T, len(names)) for _, name …
101 map  go  yaml 

4
C ++ const映射元素访问
我尝试使用operator []访问const C ++映射中的元素,但是此方法失败。我也尝试使用“ at()”来做同样的事情。这次成功了。但是,我找不到有关使用“ at()”访问const C ++映射中的元素的任何参考。“ at()”是C ++映射中的新增功能吗?在哪里可以找到更多有关此的信息?非常感谢你! 示例如下: #include <iostream> #include <map> using namespace std; int main() { map<int, char> A; A[1] = 'b'; A[3] = 'c'; const map<int, char> B = A; cout << B.at(3) << endl; // it works cout << B[3] << endl; // …
100 c++  stl  map  const 


7
Java是否具有带有反向查找的HashMap?
我有以“键-键”格式而不是“键-值”格式组织的数据。这就像一个HashMap,但是我将需要在两个方向上进行O(1)查找。这种数据结构是否有名称,Java的标准库中是否包含类似的名称?(或者Apache Commons?) 我可以编写自己的类,该类基本上使用两个镜像的Map,但我不想重蹈覆辙(如果已经存在,但我只是没有在寻找正确的术语)。

3
部分JSON解组到Go中的地图
我的websocket服务器将接收和解组JSON数据。此数据将始终包装在具有键/值对的对象中。密钥字符串将充当值标识符,告诉Go服务器它是哪种值。通过知道什么类型的值,然后我可以进行JSON解组值到正确的结构类型。 每个json对象可能包含多个键/值对。 JSON示例: { "sendMsg":{"user":"ANisus","msg":"Trying to send a message"}, "say":"Hello" } 有什么简单的方法可以使用"encoding/json"软件包来做到这一点? package main import ( "encoding/json" "fmt" ) // the struct for the value of a "sendMsg"-command type sendMsg struct { user string msg string } // The type for the value of a "say"-command type say string func …
98 json  map  go 

12
寻找一种好的世界地图生成算法
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 改善这个问题 我正在开发类似《文明》的游戏,并且正在寻找一种生成类似地球的世界地图的良好算法。我已经尝试了一些替代方法,但是还没有找到真正的赢家。 一种选择是使用Perlin噪声生成高度图,并添加一定水平的水,以使世界上约30%的土地为土地。虽然Perlin噪声(或类似的基于分形的技术)经常用于地形并且相当真实,但它并不能提供很多控制所得大陆的数量,大小和位置的方式,我想从游戏角度来看。 第二种选择是从随机放置的单块种子开始(我正在研究一个瓷砖网格),确定该大陆所需的尺寸,然后每转一圈添加一个与现有大陆水平或垂直相邻的瓷砖,直到您已达到所需的大小。重复其他大洲。该技术是《文明4》中使用的算法的一部分。问题在于,放置前几个大洲之后,有可能会选择一个被其他大洲包围的起始位置,因此不适合新的大洲。而且,它倾向于使各大陆之间的距离太近,导致某些东西看起来比大洲更像一条河流。 有没有人碰巧知道一个好的算法,可以在基于网格的地图上生成现实的大洲,同时又能控制其数量和相对大小?
97 algorithm  map  terrain 

7
使用gdb检查标准容器(std :: map)内容
假设有这样的事情: #include <map> int main(){ std::map<int,int> m; m[1] = 2; m[2] = 4; return 0; } 我希望能够检查从gdb运行该程序的地图的内容。 如果尝试使用下标运算符,则会得到: (gdb) p m[1] Attempt to take address of value not located in memory. 使用find方法不会产生更好的结果: (gdb) p m.find(1) Cannot evaluate function -- may be inlined 有没有办法做到这一点?
93 c++  stl  map  gdb 

8
将元组列表转换为映射(并处理重复的键?)
我正在考虑一种将具有重复键的元组列表转换[("a","b"),("c","d"),("a","f")]为map 的好方法("a" -> ["b", "f"], "c" -> ["d"])。通常(在python中),我将创建一个空映射并在列表上进行for循环,并检查重复的键。但是我在这里寻找一种更轻松,更聪明的解决方案。 顺便说一句,我在这里使用的键值的实际类型是(Int, Node),我想变成一个映射(Int -> NodeSeq)
90 scala  map 

6
使用map.get()时使用Java Map.containsKey()冗余
我一直想知道,在最佳实践中,是否允许不使用containsKey()on方法java.util.Map,而是对from的结果进行空检查get()。 我的理由是,对值进行两次查找似乎是多余的:首先对进行查找,containsKey()然后对进行查找get()。 另一方面,可能是大多数标准实现都Map缓存了最后的查找,或者编译器可以通过其他方式消除冗余,并且对于代码的可读性而言,最好保留该containsKey()部分。 非常感谢您的评论。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.