将元素从类外部插入到私有映射中
Insert element into private map from outside of the class
我在头文件中得到了一个作为的映射
public:
typedef map<string, int> mymap;
private:
mymap m;
在main.cpp中,我想将值插入到"m"中,这是映射的同义词。如何插入值?像
m.insert(...);
不能直接插入它们,因为m
是私有成员。您只能从类外部访问公共成员(除非main()
是该类的朋友,这是不可能的)。
可能的解决方案包括添加(或使用现有的)公共方法,为您进行插入:
public:
void insert(std::pair<string, int> const &);
void insert(string const &, int);
或者公开地图(可能是个坏主意):
public:
mymap m;
或者添加您的main()
函数作为类的朋友(几乎可以肯定是个坏主意):
friend int main();
// Or, if your main() accepts the standard argc/argv parameters:
friend int main(int argc, char **argv);
相关文章:
- 为什么映射插入和 map.find() 的单次迭代比插入和 map.find() 的两次单独迭代慢得多
- 如何编写用于多映射插入和擦除功能的 API?
- C++,映射插入&&文件流读取导致麻烦
- 多映射插入键类型信息 std::make_pair vs std::p air 构造函数
- 将一个映射插入到同一多重映射的另一个映射中会导致 SEG 错误
- 将元素插入 c++ 映射 - 插入方法的差异
- 使用boost::关联属性映射插入boost::BIMAP..失败
- STL 无序映射 - 插入到向量中
- C++在映射插入期间保证移动
- Visual Studio C++-std::映射插入失败
- C++映射插入
- 标准::映射插入/擦除的并发问题
- 不明确的映射.插入boost
- 无序映射插入复制元素
- 无序映射插入()错误
- 自定义键出现c++映射插入错误
- c++多映射插入两个以上的值
- 使用配对类型的映射插入
- 调试映射插入
- STL映射插入复制构造函数