标签: map

如何检查std :: map是否包含一个没有插入的键?

我发现检查重复项的唯一方法是插入并检查std::pair.secondfor false,但问题是如果密钥未使用,这仍会插入一些东西,而我想要的是一个map.contains(key);函数.

c++ stl map

140
推荐指数
3
解决办法
15万
查看次数

在std :: map和std :: unordered_map之间进行选择

现在std有一个真正的哈希映射unordered_map,为什么(或何时)我还想在它实际存在的系统上使用旧的mapover unordered_map?是否有任何我无法立即看到的明显情况?

c++ hash unordered-map map c++11

130
推荐指数
5
解决办法
9万
查看次数

数据结构树和图之间有什么区别?

从学术上讲,数据结构Tree和Graph之间的本质区别是什么?那么基于树的搜索和基于图的搜索呢?

tree search map data-structures

127
推荐指数
6
解决办法
9万
查看次数

在Java 8中,如何使用lambda将Map <K,V>转换为另一个Map <K,V>?

我刚刚开始研究Java 8并试用lambdas我以为我会尝试重写一个我最近编写的非常简单的东西.我需要将String of Map转换为Column到另一个String to Column的Map,其中新Map中的Column是第一个Map中Column的防御副本.列具有复制构造函数.我到目前为止最接近的是:

    Map<String, Column> newColumnMap= new HashMap<>();
    originalColumnMap.entrySet().stream().forEach(x -> newColumnMap.put(x.getKey(), new Column(x.getValue())));
Run Code Online (Sandbox Code Playgroud)

但我相信必须有一个更好的方法去做,我会感激一些建议.

java lambda map java-8 java-stream

126
推荐指数
6
解决办法
10万
查看次数

使用JSTL循环映射

我希望JSTL循环通过a Map<String, String>并输出键的值和它的值.

例如,我有一个Map<String, String>可以有任意数量的条目,我想使用JSTL遍历这个地图并输出密钥和它的值.

我知道如何使用密钥访问该值${myMap['keystring']},但是如何访问密钥?

loops jstl map

122
推荐指数
2
解决办法
10万
查看次数

go中删除地图[key]?

我有一张地图:

var sessions =  map[string] chan int{}
Run Code Online (Sandbox Code Playgroud)

我该如何删除sessions[key]?我试过了:

sessions[key] = nil,false;
Run Code Online (Sandbox Code Playgroud)

那没用.


更新(2011年11月):

Go版本1中删除了删除地图条目的特殊语法:

Go 1将删除特殊的地图分配并引入新的内置函数delete:delete(m, x)将删除由表达式检索的地图条目m[x]....

map go

117
推荐指数
4
解决办法
11万
查看次数

C++中的map与hash_map

我有一个问题hash_map,并map在C++中.我明白这map是STL,但hash_map不是标准.这两者有什么区别?

c++ hashmap map

114
推荐指数
3
解决办法
15万
查看次数

remove_if等效于std :: map

我试图根据特定情况从地图中删除一系列元素.我如何使用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 = aMap.begin();
    std::map<int, std::string>::iterator endIter = aMap.end();

    for(; iter != endIter; ++iter)
    {
            if(Some Condition)
            {
                            // is it safe ?
                aMap.erase(iter++);
            }
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ stl map

113
推荐指数
5
解决办法
5万
查看次数

以有效的方式从Map中删除多个键?

我有一个Map<String,String>具有大量键值对.现在我想从中删除选定的键Map.以下代码显示了我为实现这一点所做的工作.

Set keySet = new HashSet(); //I added keys to keySet which I want to remove. 
Run Code Online (Sandbox Code Playgroud)

然后 :

Iterator entriesIterator = keySet.iterator();
while (entriesIterator.hasNext()) {
   map.remove( entriesIterator.next().toString());
} 
Run Code Online (Sandbox Code Playgroud)

这很有效.我只是想知道,实现我的要求会有什么更好的方法?

java map

113
推荐指数
3
解决办法
6万
查看次数

在Java中的地图的浅拷贝

据我了解,有几种方法(也许还有其他方法)Map在Java中创建一个浅表副本:

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();
Run Code Online (Sandbox Code Playgroud)

一种方式优于另一种方式,如果是这样,为什么?

值得一提的是,第二种方式是"Unchecked Cast"警告.所以你必须添加@SuppressWarnings("unchecked")以解决它,这有点刺激(见下文).

@SuppressWarnings("unchecked")
public Map<String, Object> getDataAsMap() {
    // return a shallow copy of the data map
    return (Map<String, Object>) ((HashMap<String, Object>) data).clone();
}
Run Code Online (Sandbox Code Playgroud)

java clone map shallow-copy

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

标签 统计

map ×10

c++ ×4

java ×3

stl ×2

c++11 ×1

clone ×1

data-structures ×1

go ×1

hash ×1

hashmap ×1

java-8 ×1

java-stream ×1

jstl ×1

lambda ×1

loops ×1

search ×1

shallow-copy ×1

tree ×1

unordered-map ×1