我可以将地图键视为指针吗? 我有一个结构,其成员是字符串的矢量,我有一个地图
是否可以使用指向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 :(得分:1)
地图键有一个我可以指向的地址吗?
是的,就像它有一个地址的所有对象一样。
我可以将地图密钥视为指针吗?
不,这不是指针。但你可以拿它的地址。
是否可以使用指向string1的指针填充我的向量?
不,因为它是字符串的向量,而不是指针;所以你可以用地图键的副本填充它(就像你的代码一样),但不是指针。你可以有一个指针向量:
vector<string const *> v;
并用指向地图键的指针填充:
test.v.push_back(&it->first);
如果从地图中删除任何键,请确保之后不要尝试使用该指针。
答案 1 :(得分:0)
在某种程度上,是的。
如果您将密钥存储在某处或作为输入读取,则可以使用它来搜索地图以查看密钥是否存在并获取其值。