私はクラスとしてstd::map
をコンテナとして使用しています。 2つのオブジェクトの間にマップをコピーする関数を追加したいと思います。マップはクラスのプライベートメンバーとして宣言されているので、私はそうするためにフレンド関数が必要です。ここに私のコードです:クラス内で定義された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でコンパイル中に多くの警告があります。これを正しく行うにはどうしたらいいですか?
あなただけのコピーコンストラクタを使用していない理由がある:あなたの関数を書くための非常に簡単な方法があるほかに
、?そして、copyDataに値渡しのbを渡すことはあまり意味がありません。 – Corbin
コンパイラがあなたに与えた警告を推測する必要はありません。それらを提供する。また、あなたのタイトルには警告が表示され、あなたの投稿にはエラーが表示されます。どちらですか? –
マップ宣言にタイプがありません! – IndieProgrammer