我有一个std::map
用作容器的类。我想添加一个函数来复制两个对象之间的映射。由于地图被声明为类的私有成员,因此我需要一个友元函数来执行此操作。这是我的代码:
class Data;
void copyData(Data &, Data &);
class Data
{
private:
map<int, int> _data;
public:
friend void copyData(Data &, Data&);
};
void copyData(Data &a, Data &b)
{
std::copy(a._data.begin(), a._data.end(), b._data.begin());
}
main()
{
// initialization here
Data A, B;
copyData(A, B);
}
但是使用mingw32编译时有很多警告。我该如何正确地做到这一点?