我有一个类有3-4个数据类型的成员,std::map<string, vector<string>>用于缓存数据.它的实例创建一次,数据填入服务调用的所有映射中.我有用于访问这些地图的getter函数.(这里也有一些线程锁定逻辑)
这些getter函数被调用了很多次,我很担心性能,因为地图对象被复制了很多次.
class A {
private:
map<string, vector<string>> m1;
map<string, vector<string>> m2;
map<string, vector<string>> m3;
public:
map<string, vector<string>> getm1() { return m1; }
map<string, vector<string>> getm2() { return m2; }
map<string, vector<string>> getm3() { return m3; }
}
class B {
B() { }
static A a;
map<string, vector<string>> getm1() { return a.m1; }
map<string, vector<string>> getm2() { return a.m2; }
map<string, vector<string>> getm3() { return a.m3; }
}
Run Code Online (Sandbox Code Playgroud)
这些getter函数有多次从类调用B.掌握了cpp的中间知识,我知道getter会按值返回整个地图.但是,这将是更好的参考或使用共享指针到地图等存储构件变量传递它m1,m2,m3 …