この場合ですと、どのように用いればよいのでしょう?
#include <iostream>
#include <string>
#include <list>
// 学生1人分の記録
class Record {
public:
int id;
std::string name;
int score;
Record () {}
Record (int i, const std::string& nm, int s) {
id = i;
name = nm;
score = s;
}
};
std::ostream& operator<< (std::ostream& os, const Record& r) {
os << "[" << r.id << "]" << r.name << " : " << r.score;
return os;
}
// 成績簿 (全学生の記録)
class Seiseki {
public:
std::list<Record> data; // ここをC言語のポインタ配列にしたい
void insert (int, const std::string&, int);
void lookup (int) const;
void erase_worst();
};
std::ostream& operator<< (std::ostream& os, const Seiseki& s) {
os << "*** 成績簿 ***\n";
for (std::list<Record>::const_iterator p = s.data.begin();
p != s.data.end(); p++) {
os << *p <<"\n";
}
return os;
}
//以下の関数を使ってSeisekiのdataにスタック操作をしたい
void Seiseki::insert (int id, const std::string& nm, int s) {
std::list<Seiseki> d;
d.push_back ( Record (id, nm, s) );
}
int main (void)
{
Seiseki s;
// 成績の登録
s.insert (7001, "aaaa", 89);
s.insert (7123, "bbbb", 70);
s.insert (7013, "cccc", 55);
s.insert (7200, "dddd", 99);
s.insert (7087, "eeee", 83);
// 全学生の成績の表示
std::cout << s;
return 0;
}