由买买提看人间百态

topics

全部话题 - 话题: multimap
1 (共1页)
d***a
发帖数: 316
1
来自主题: CS版 - multimap 问题请教
一个用multimap的sample code,有些不明白为什么会是这样的输出结果。
code如下:
#include
#include
#include
#include
using namespace std;
typedef int KeyType;
typedef string ValType;
typedef pair Pair;
typedef multimap MapCode;
int main()
{
MapCode codes;

codes.insert(Pair(415, "San Francisco"));
codes.insert(Pair(510, "Oakland"));
codes.insert(Pair(718, "Brooklyn"));
codes.insert(Pair(718, "Staten Island"));
codes.ins... 阅读全帖
c**********e
发帖数: 2007
2
Associative container 是 set, multiset, map, multimap 这些东西吗?
原来C++容器也分贫下中农:
Sequence Container: vector, deque, list
Container Adaptor: stack, queue, priority_queue
Associative container: set, multiset, map, multimap ???
S**I
发帖数: 15689
3
来自主题: CS版 - multimap 问题请教
multimap按key排序,不是按value。
r**h
发帖数: 1288
4
用一个multimap
左边是一个string,右边是对应的字符串的index
因为所有anagram,他们sort后的字符串都是一样的。
第一轮loop,sort每个string,按照sort的结果加入到multimap里
第二轮遍历multimap,输出字符串
multimap mmp;
multimap::iterator it;
vector results;
string tmp;
for(int i=0; i tmp = strs[i];
sort(tmp.begin(), tmp.end());
mmp.insert(std::pair(tmp, i));
}
for(it=mmp.begin(); it!=mmp.end(); it++){
results.push_back(strs[(*it).second]);
}
return results;
e***n
发帖数: 42
5
搞定.用了multimap 和两个iterator.
#include
#include
#define N 13
using namespace std;
void find2SumTarget(int arr[N], int target){
int i;
multimap hashT;
multimap::iterator iter1, iter2;
typedef multimap::size_type sz_type;
for (i=0; i hashT.insert(make_pair(arr[i], i));
}
iter1 = hashT.begin();
while(iter1 != hashT.end()){
iter2 = hashT.find(target - arr[iter1->second]);
sz_type entries = has... 阅读全帖
g********c
发帖数: 23
6
来自主题: JobHunting版 - Leetcode 4SUM 总是超时
我在网上找了个答案
http://yucoding.blogspot.in/2012/12/leetcode-question-3-4-sum.h
他先是把所有元素两两相加,存进multimap做了个hash,
然后在这个multimap里依次两两相加看是否等于target。
我感觉他的解法很费时间啊,超过O(n^4)了吧?(因为首先构建好multimap的size是O(
n^2),然后再两层for循环)
我之前用3sum那种方法写的,左右移动指针,O(n^3),不超时,但是最近提交都显示超
时。
哪里有不超时C++的答案呢?
w****o
发帖数: 2260
7
来自主题: JobHunting版 - 问几个关于hash, map, set的问题
1. STL中的std::unordered_map是不是等同于(或者是类似)Java中的Hashmap?
2. STL中的std::map是不是等同于(或者是类似)Java中的Treemap?
3. STL中hashtable是哪个类实现的?Java中类似的哪个类叫什么名字?问的就是在STL
和Java下都是叫什么名字。
4. 为什么在我的linux机器上的目录/usr/include/c++/4.1.2下只有set, map而没有
multiset和multimap?你们的系统里有multiset和multimap吗?
另外我发现STL的unordered_map和unordered_set是定义在/usr/include/c++/4.1.2/
tr1下面的。
谢谢!
w****o
发帖数: 2260
8
来自主题: JobHunting版 - 问几个关于hash, map, set的问题
谢谢 SETI,
我看了一下,
set文件包含了
#include
#include
#include
map文件包含了
#include
#include
#include
现在明白了multiset和multimap都已经在STL了。非常感谢。
仍有一问题不明白,就是如果写C/C++代码,如何用hashtable?难道要自己实现吗?好
像不太容易吧如果from scratech的话。
好像在tr1/下面有一个文件hashtable,unordered_map, unordered_set的实现都用到了
tr1/hashtable,是不是可以说这个就是STL 扩展中的hashtable的实现呢?
是不是我们写代码的时候可以用tr1/hashtable去用作hashtable?
谢谢了!

multimap?
r*******t
发帖数: 99
9
来自主题: JobHunting版 - 一道G家店面题
这个题相当于一个Jump Game:一排格子,每一个可以往后面的某些格子里跳,每一跳
的cost是0。同时每一个可以往紧邻的下一个格子跳,每一跳的cost是1。把格子看成
vertex,跳看成edge的话就是一个directed graph的shortest path问题,而且这个图已
经是topologically ordered,只用从前往后scan一遍所有vertices,同时update当前
vertex前方与之相连的vertices就可以了。
每一个vertex有哪些outgoing的edges可以查用anagram索引过的dictionary来确定。索
引dictionary的时候记下最大词长可以减少look up的次数。
string minSkip(vector& dictionary, string& str) {
multimap ana2word;
size_t maxLength = 0;
for (size_t i = 0; i < dictionary.size(); ++i) {
... 阅读全帖
l*********8
发帖数: 4642
10
来自主题: JobHunting版 - 上道图论的吧
My two cents:
遍历所有边,把color-color relations 存在multimap里面。
最后扫描multimap找出relation最多的color.
s*w
发帖数: 729
11
来自主题: Programming版 - 对STL的set比较熟悉的进来看看
Google 了一下,这个问题没我想象的容易啊,大致是个 data view 的意思;好像有个
view
pattern 没明白啥意思;下面的是根据有人的建议的一个简单实现。主要麻烦是 set,
map 都不能
用 sort, 只能利用插入时候的缺省 sort
#include
#include
#include
#include
using namespace std;
int main()
{
map namescore;
multimap scorename;
namescore["tom"] = 100;
namescore["mary"] = 90;
namescore["rose"] = 95;
namescore["peter"] = 60;
for (map::iterator
it=namescore.begin();it!=namescore.end();it++) {
cout << it->first << ": ... 阅读全帖
w****o
发帖数: 2260
12
【 以下文字转载自 JobHunting 讨论区 】
发信人: winhao (勇敢的人), 信区: JobHunting
标 题: 问几个关于hash, map, set的问题
发信站: BBS 未名空间站 (Wed Mar 7 14:52:17 2012, 美东)
1. STL中的std::unordered_map是不是等同于(或者是类似)Java中的Hashmap?
2. STL中的std::map是不是等同于(或者是类似)Java中的Treemap?
3. STL中hashtable是哪个类实现的?Java中类似的哪个类叫什么名字?问的就是在STL
和Java下都是叫什么名字。
4. 为什么在我的linux机器上的目录/usr/include/c++/4.1.2下只有set, map而没有
multiset和multimap?你们的系统里有multiset和multimap吗?
另外我发现STL的unordered_map和unordered_set是定义在/usr/include/c++/4.1.2/
tr1下面的。
谢谢!
w****o
发帖数: 2260
13
【 以下文字转载自 JobHunting 讨论区 】
发信人: winhao (勇敢的人), 信区: JobHunting
标 题: 问几个关于hash, map, set的问题
发信站: BBS 未名空间站 (Wed Mar 7 14:52:17 2012, 美东)
1. STL中的std::unordered_map是不是等同于(或者是类似)Java中的Hashmap?
2. STL中的std::map是不是等同于(或者是类似)Java中的Treemap?
3. STL中hashtable是哪个类实现的?Java中类似的哪个类叫什么名字?问的就是在STL
和Java下都是叫什么名字。
4. 为什么在我的linux机器上的目录/usr/include/c++/4.1.2下只有set, map而没有
multiset和multimap?你们的系统里有multiset和multimap吗?
另外我发现STL的unordered_map和unordered_set是定义在/usr/include/c++/4.1.2/
tr1下面的。
谢谢!
s*********g
发帖数: 153
14
来自主题: JobHunting版 - Bloomberg on-campus interview (failed) 求教
楼主发挥的很不错了,虽败尤荣,Bloomberg可能比较严吧。
对于第一个问题:首先
ihasleetcode 指出了查找某个level的答案,用DST做时间复杂度o(n),BST做2*O(n)
,多了n个pop_front in queue的操作。
即时打印所有level,两个时间复杂度是一样的。
第二个问题,我认为楼主的思想很正确,但是可以用更好方法:
multimap my_multimap
每次插入操作前,用 my_multimap.count(string)看看满不满20个,如果满的话
my_multimap.erase(my_mulltimap.find(string)),移出最早的第一个数据,再插入新
数据,这样就永远保持最新的20个数据了。所以说,楼主思想正确,但是忘记用最好的
STL structure了

time
m**q
发帖数: 189
15
来自主题: JobHunting版 - 几道老题 的解答
还是对STL不熟,multimap的话用lower_bound和upper_bound就够了,
找y坐标在lower_bound(y-h)和upper_bound(y+h)之间的点
或者用一个set,元素是pair,自动按先y坐标后x坐标排序,
然后还是用lower_bound+upper_bound.
m**q
发帖数: 189
16
来自主题: JobHunting版 - 几道老题 的解答
还是对STL不熟,multimap的话用lower_bound和upper_bound就够了,
找y坐标在lower_bound(y-h)和upper_bound(y+h)之间的点
或者用一个set,元素是pair,自动按先y坐标后x坐标排序,
然后还是用lower_bound+upper_bound.
a**********2
发帖数: 340
17
来自主题: JobHunting版 - 问个几道结构设计题
1.一组用户信息,包括first name, last name,phone number等等,设计一个结构存
储这些信息,能够动态添加,并且能根据first name或者last name进行查找。
我就想到用两个multimap存储,不知道有什么好的思路
2.顺便问道老题
In our indexes, we have millions of URLs each of which has a link to some
page contents, that is, URL->contents. Now, suppose a user types a query
with wild cards *, which represent 0 or multiple occurrences of any
characters, how do you build the indexes such that such a type of query can
be executed efficiently by finding all corresponding URLs->contents
ef... 阅读全帖
q****x
发帖数: 7404
18
来自主题: JobHunting版 - Zillow screen 面经,兼打听工资
又想了一下,这个三叉树实际还是二叉树,不过把相同的键放到一个单链表里。
multiset和multimap就是用这个实现的吧?
S**I
发帖数: 15689
19
来自主题: JobHunting版 - 问几个关于hash, map, set的问题
1. yes
2. yes
3. N/A in C++, HashTable in Java
4. Do you know which header file to include when using multiset or multimap?
unordered_map and unordered_set only became part of std recently, the
implementation hasn't been updated yet.

STL
P*A
发帖数: 189
20
来自主题: JobHunting版 - 讨论一道题
用BST挺好,比heap维护更方便,
修改了一下,可以不用把pair当作key来排序,在hash里面记录BST结点的指针
multimap bst;
hash_map > hm;
foreach given key k
0. if(hm.find(k)==hm.end()) {
hm.insert(make_pair(k, make_pair(1, bst.end())));
if (bst.size () < K) {
// bst里元素不足K
t = bst.insert (make_pair(f, k))
hm[k].second = t;
}
continue;
}
1. f = ++hm[k].first;
2. if (hm[k].second != bst.end()) {
// bst里有k了,那么更新freq值
bst.erase (hm[k].se... 阅读全帖
G******e
发帖数: 229
p****c
发帖数: 35
22
来自主题: JobHunting版 - F家面经求bless
先是各自简单的自我介绍。然后两道很常规的题目:
1. 判断字符串不考虑标点空格的情况下是回文.
2. 给定一组字符串, 按anagram分组后,返回list of list.
当时脑子一片空白,用了半个多小时才搞定。第一题跳过标点空格时忘了检查字符越界
. 写完后,说我先测试一下. 假设输入是一个空格, 自己走了一遍说好像可以.考官问
你的测试真的可以吗?才发现了没有检查字符越界的bug. 赶快加上.考官说可以简化一
下while的条件吗?看了一下去掉了一个多余的条件,说我看看还能再简化吗. 考官说可
以了,你的程序works, 下一个吧.
第二题一开始突然不知道该用什么数据结构。我说就定义一个less_than直接排序就可
以了. 刚想写less_than, 觉得这样太复杂,我说还是用hash或者map吧。考官说key是
什么, 我说没有key,就用hash_set或者multiset吧. 考官说你可以造一个key吗?我说
可以把字符串排序作key. 然后开始定义数据结构. hash_map, 写到
这里看了一下改成multimap阅读全帖
i**********d
发帖数: 105
23
我用c++。一般我就assume有hashtable,他们也说可以。或者map, multimap。
总之c++比c好多了。
u*****o
发帖数: 1224
24
来自主题: JobHunting版 - 贡献A 家online assement
第二题可以用MULTIMAP里的COUNT吗?先建TABLE,然后扫一遍,记录MAXCOUNT?
u*****o
发帖数: 1224
25
来自主题: JobHunting版 - 帮人发推特家电面面经
第二题MULTIMAP吧。。
t******i
发帖数: 483
26
来自主题: JobHunting版 - 帮人发推特家电面面经
为啥用multimap?每个字母,hashmap就可以啊。
u*****o
发帖数: 1224
27
来自主题: JobHunting版 - 帮人发推特家电面面经
我是想用multimap里的COUNT来数FREQUENCY啊, hashmap同样的字母只能放一次啊
t******i
发帖数: 483
28
来自主题: JobHunting版 - 帮人发推特家电面面经
2) 给出字符串,输出一个表,这个表(tab-le)要有每个字母在字符串中出现的次数
每个字母做key, value就是出现的次数就足够了啊
比如 apple hadoop pig
key value
a 2
d 1
e 1
p 4
l 1
h 1
i 1
g 1
o 2
value 就是每个字母在字符串中出现的次数
还是没懂为啥你要用multimap
u*****o
发帖数: 1224
29
来自主题: JobHunting版 - 帮人发推特家电面面经
可以啊,VALUE记录FREQUENCY用hashmap就行啊,我只是当时想用VAL=index吗,就想着
用multimap了。。
s**x
发帖数: 7506
30
来自主题: JobHunting版 - 新鲜Google面经
应该可以吧? multiset, multimap etc.
Q*****a
发帖数: 33
31
来自主题: JobHunting版 - airBnb电面面经
实现了4种方法
1: 直接遍历完整计算edit distance. 285 clocks.
2: 直接遍历,计算edit distance到 >k 就返回. 149 clocks.
3: Trie+shortcut edit distance. Build trie: 606 clocks, process: 6 clocks.
http://stevehanov.ca/blog/index.php?id=114
4: Generate delete k transformation. Build dict: 17033 clocks. process: 0
clocks.
但这里不仅需要生成delete k的pattern, 还需要生成所有delete 1..k-1的pattern,
否则不能handle如(chrome brome)的case
http://blog.faroo.com/2012/06/07/improved-edit-distance-based-s
#include "common.h"
class Trie {
public:
class TrieNo... 阅读全帖
Q*****a
发帖数: 33
32
来自主题: JobHunting版 - airBnb电面面经
实现了4种方法
1: 直接遍历完整计算edit distance. 285 clocks.
2: 直接遍历,计算edit distance到 >k 就返回. 149 clocks.
3: Trie+shortcut edit distance. Build trie: 606 clocks, process: 6 clocks.
http://stevehanov.ca/blog/index.php?id=114
4: Generate delete k transformation. Build dict: 17033 clocks. process: 0
clocks.
但这里不仅需要生成delete k的pattern, 还需要生成所有delete 1..k-1的pattern,
否则不能handle如(chrome brome)的case
http://blog.faroo.com/2012/06/07/improved-edit-distance-based-s
#include "common.h"
class Trie {
public:
class TrieNo... 阅读全帖
s*********n
发帖数: 35
33
前天BB onsite就遇到这道题了,交易会不断的进来,然后getTop10(或者topN)也会频
繁的调用,让设计。 刚开始说priority_queue,对面国人大哥问什么是pq, 改口说
heap,也不让,最后我用双map, 一个map存ticker->{volume, iter_of_rankmap}, 另
一个multimap rankermap, size约束成10,存volumn->ticker, 自圆其说算是解决了
,面试的说cool cool,也不知道是真酷还是忽悠我,至今没想到其他方法。
a*********0
发帖数: 2727
34
来自主题: JobHunting版 - 献码:Repeated DNA Sequences
class Solution {
public:
vector findRepeatedDnaSequences(string s) {
int map[4];
std::fill(map, map+4, 0);
vector res;
set keySet;
multimap mmap;
if(s.size()<10) return res;

for(int i=0;i map[toInt(s[i])]++;
if(i>=9){
if(i>=10){
map[toInt(s[i-10])]--;
}
string ss=toString(map);
... 阅读全帖
A*******e
发帖数: 2419
35
来自主题: JobHunting版 - FLGU面经offer及杂谈
1.明白了。
2.直接在普通rb-tree上加个计数器不就好了吗?何必重复key?而且一直没搞懂,
multiset/multimap有什么必需应用么?
w*********e
发帖数: 49
36
来自主题: JobHunting版 - FLGU面经offer及杂谈
multimap比较好理解,就是一样的key不同的value
multiset确实等同于可key-count的map,但是据说在combinatorics里有应用,看了看
wiki没看懂
A*******e
发帖数: 2419
37
来自主题: JobHunting版 - FLGU面经offer及杂谈
一样的key不同value也很奇怪啊。直接key到unique value set不就可以了?无非是一
个key返回所有value,或者第k个,或者随机返回一个。
平时写代码从来没用过multimap/set。而且unordered_map/set里不存在对应的结构。
A*******e
发帖数: 2419
38
来自主题: JobHunting版 - FLGU面经offer及杂谈
1.明白了。
2.直接在普通rb-tree上加个计数器不就好了吗?何必重复key?而且一直没搞懂,
multiset/multimap有什么必需应用么?
w*********e
发帖数: 49
39
来自主题: JobHunting版 - FLGU面经offer及杂谈
multimap比较好理解,就是一样的key不同的value
multiset确实等同于可key-count的map,但是据说在combinatorics里有应用,看了看
wiki没看懂
A*******e
发帖数: 2419
40
来自主题: JobHunting版 - FLGU面经offer及杂谈
一样的key不同value也很奇怪啊。直接key到unique value set不就可以了?无非是一
个key返回所有value,或者第k个,或者随机返回一个。
平时写代码从来没用过multimap/set。而且unordered_map/set里不存在对应的结构。
z***u
发帖数: 105
41
来自主题: JobHunting版 - 请教面试中的数据结构的设计题。
面试中遇到的数据结构设计题,请教有没有更好的办法。还有最后一问没有打上来,请
教如何设计最后一题。
问题: 有很多不同型号的汽车要测试,每分钟采集一个数据,比如实时的MPG(假设都
是整数), 数据格式如下:["car1", 19], ["car2" 22], ["car3" 21]...
1. 问: 设计一个数据结构来存储每个车最新的数据
答: unordered_map
2. 问: 如何改进来存一天的数据, 并且支持返回某时间段的MPG值,比如get("car1"
, 12:00,13:00)
答: unordered_map 加 map, 如unordered_map< string/*car name*/, map time stamp*/, int/*MPG data*/> >.
map 是排好序的,用lower_bound,和upper_bound找出时间的区间返回值
3. 如果需要找出N个车,它们的平均MPG最高。如何改进已有的数据结构。
我给出的答案是multimap阅读全帖
P****e
发帖数: 385
42
时间:4月9日,本周六,下午6点
地点:安瑞斯,具体地址及交通方法见下.
人物:piano, tuir, maevis, leoq & friend,pierce
关于餐馆:
Please have a look at:
http://www.multimap.com/map/browse.cgi?pc=NW6+7QE
405 Kilburn High Road (A5), London, NW6 7QF
The restaurant is between the tube/rail stations, Kilburn and Brondsbury and
at the same side of the road.
TEL: 020 7625 2663
s***n
发帖数: 10693
43
来自主题: Outdoors版 - 求推荐online版的OS Map
比如像英国的multimap这样的。
谢谢。
S**I
发帖数: 15689
44
来自主题: CS版 - 問一個數據結構的問題
Of course; for example, C++ STL has multiset and multimap, which allow
existence of elments with equivalent keys. Also, both of them have a member
function equal_range, which does exactly what you want.

a
q*****g
发帖数: 72
45
string is sequential container
associative container: set, multiset, map, multimap
s**p
发帖数: 207
46
来自主题: Programming版 - question regarding standard library
i have a sparse matrix to solve, which need to change a little bit in the
future, will add 1 or 2 non-zero elements or delete 1 or 2 evertime.
i want to use CSR (compressed storage by row) to store it
one way is to implement with three vectors, val, row_ptr, col_idx
but this will give me trouble when i modified the matrix. changing only
several elements I need to re-do the whole procedure.
so I want to use a multimap. which should work very nicely.
then i have one concern, how can i deal with t
t*********e
发帖数: 1136
47
来自主题: Programming版 - 问个有关C++ map的问题
为啥要load百万数据?hash multimap的performance难掌握。数据一多就得考虑连续性
。不然可能page faults很多。
l***e
发帖数: 480
48
来自主题: Programming版 - 如何用C++找到三组数据的交集
是multimap吧?
t****t
发帖数: 6806
49
exactly, you select the best data structure for your problem. you seem to
want to use the integer as the key since you compared it -- then you should
use array.
so make up your mind: what do you want to use as key? the string, use map<
string, int> or map; the index, use map or multimap<
int, string> or vector or string[].
you still need to clear up your concepts. it's still a mess.

not
have
d*******n
发帖数: 524
50
map is what I need and the string is used like a name (i.e. key).
The reason I was comparing index was because I though the map needs a
comparator for the value (class A), so I simply gave it one based on
comparing index, which is not really needed. This turned out to be a
misunderstanding that messed the logic up.
Other than that, nothing is messed up.

should
multimap<
1 (共1页)