map<char *, int> sym_addr;
map<char *, int> sym_tbl;
void set_map(map<char *, int> & sym_tbl)
{
sym_addr = sym_tbl;
}
上述作业有问题吗?
答案 0 :(得分:0)
更好的方法是将密钥更改为std::string
:std::map< std::string, int>
如果要复制,请通过const引用传递该对象:
typedef std::map< std::string, int> myMapType;
myMapType sym_addr;
myMapType sym_tbl;
void set_map(const myMapType & sym_tbl)
{
sym_addr = sym_tbl;
}
除此之外,没有问题。 map :: operator =用于将一张地图的内容复制到另一张地图中。
答案 1 :(得分:0)
您应该通过const
引用传递参数,否则会阻止复制声明为const
的地图。
此外,请确保您确切了解如果使用char*
作为密钥会发生什么 - 密钥是字符串的地址,而不是其内容。如果您想按字符串 values 索引地图,请使用std::string
作为密钥。