2015-05-03 41 views
-1

我可以将地图键作为指针吗? 我有一个结构,其中的成员是向量的字符串,我有一个地图没有地图键有我可以指向的地址吗?

是否有可能用指向string1的向量填充我的向量?

例如

struct A 
{ 
    vector<string> v; 
} 
map<string, string> m; 
m["hello"] = "test"; 
m["world"] = "test2"; 

A test; 
for(map<string, string>::iterator it = m.begin(); it != m.end(); it++) 
test.v.push_back(it->first) 

我能做到这一点?

+0

你在这里没有把指针当作指针。你只是迭代一个地图并将其键添加到一个矢量。实际上,您将字符串作为值进行操作。任何地方都没有指针。 – EJP

回答

1

确实地图键有地址,我可以指向?

是的,就像所有对象都有地址一样。

我可以将map key作为指针吗?

不,它不是指针。但你可以接受它的地址。

是否有可能用指向string1的指针填充我的向量?

不,因为它是字符串的向量,而不是指针;所以你可以填写地图键的副本(如你的代码所做的那样),而不是指针。你可以有一个指针的向量:

vector<string const *> v; 

,并填写与指针的映射键:

test.v.push_back(&it->first); 

如果您从地图上的任何按键,然后确保你不要尝试之后使用该指针。

0

某种程度上,是的。

如果您有一个密钥存储在某处或作为输入读取,那么您可以使用它来搜索地图,以查看密钥是否存在并获取其值。

+0

如果我指向关键如何获得它的价值?我以为我只能成对 – lllook

相关问题