0
マップを使用してテキストファイルから音楽ライブラリを保持して整理するプログラムを作成しています。アーティストマップには、ソングマップを保持するアルバムマップがあります。私が抱えている問題は、各アーティストのすべてのアルバムが、そのアーティストのアルバムだけでなく、各アーティストの下に挿入されていることです。私は、アーティストが新しいアーティストかどうかを判断し、それがアーティストマップにあればそれを挿入するこの関数に絞り込んだ。アルバムが整理されると、アルバムと曲にも同じです。マップ内の地図のC++ STL地図が正しく挿入されない
はここにここに私のクラス情報
class Song {
public:
string title;
int time;
int track;
};
class Album {
public:
map <int, Song *> songs;
string name;
int time;
};
class Artist {
public:
map <string, Album *> albums;
string name;
int time;
int nsongs;
};
である私は、問題があると考えている機能である:
map <string, Artist*> newArtist(Artist* a, Album* al, Song* s, string artist, string album, int track, map <string, Artist*> lib){
if (lib.find(artist) == lib.end()){
cout << "New Artist: " << artist << endl;
a->name = artist;
lib[artist] = a;
} else if (lib.find(artist) != lib.end()){
cout << "Old Artist: " << artist << endl;
}
if (lib.find(artist)->second->albums.find(album) == lib.find(artist)->second->albums.end()){
cout << "New Album: " << album << endl;
al->name = album;
lib.find(artist)->second->albums[album] = al;
} else if (lib.find(artist)->second->albums.find(album) != lib.find(artist)->second->albums.end()){
cout << "Old Album: " << album << endl;
}
return lib;
}
これは、プリントアウトしものです。あなたが見ることができるようにすべての単一のアルバムはすべてのアーティストの下にあります。
King Crimson
A Russian Piano Recital
Intergalactic Boogie Express
Jazz Piano III (A Smithsonian Collection)
Josef Hofmann & Ignace Jan Paderewski Play Liszt
Larks' Tongues In Aspic
Paderewski Plays Concert No. 1
Three of a Perfect Pair
Larkins, Ellis
A Russian Piano Recital
Intergalactic Boogie Express
Jazz Piano III (A Smithsonian Collection)
Josef Hofmann & Ignace Jan Paderewski Play Liszt
Larks' Tongues In Aspic
Paderewski Plays Concert No. 1
Three of a Perfect Pair
League of Crafty Guitarists
A Russian Piano Recital
Intergalactic Boogie Express
Jazz Piano III (A Smithsonian Collection)
Josef Hofmann & Ignace Jan Paderewski Play Liszt
Larks' Tongues In Aspic
Paderewski Plays Concert No. 1
Three of a Perfect Pair
Lewin, Michael
A Russian Piano Recital
Intergalactic Boogie Express
Jazz Piano III (A Smithsonian Collection)
Josef Hofmann & Ignace Jan Paderewski Play Liszt
Larks' Tongues In Aspic
Paderewski Plays Concert No. 1
Three of a Perfect Pair
Paderewski, Ignace
A Russian Piano Recital
Intergalactic Boogie Express
Jazz Piano III (A Smithsonian Collection)
Josef Hofmann & Ignace Jan Paderewski Play Liszt
Larks' Tongues In Aspic
Paderewski Plays Concert No. 1
Three of a Perfect Pair
私がここで間違っていることに関するアイデア。
私たちにエラーを表示しますか? –
私は出力を追加しました。 –
私はそれが関数の後にオブジェクトの削除を削除することによって動作するようになった。 Idkの場合は、メモリリークがあることを意味します。 –