0

リストのベクトルを出力するのに問題があります:

class index_table {

public:
    index_table() { table.resize(128);}
    void insert(string &, int );

private:
    class entry
    {
        public:
        string word;
        vector <int> line;
    };

    vector< list <entry> > table;
};

いっぱいになるように持っています:

int main ()
{
index_table table;
string word,
int num = 5; //this is going to a random number. 5 is a temp. place holder.

while (cin >> word)
    table.insert(word, num);

}

しかし、それをどのように出力するのですか?私はさまざまなアプローチを試しましたが、それらの多くでエラーが発生しています。
演算子をオーバーロードする必要がありますか? どうすればそれができるようになるのか、完全にはわかりません。

4

3 に答える 3

3

を使用する十分な理由があると仮定するとstd::vector< std::list<entry> >、与えられた構造に基づいて、単語の印刷は次のようになります。

class index_table {
public:
    void print() {
        for (size_t i = 0; i < table.size(); ++i) {
            std::list<entry>::iterator li;
            for (li = table[i].begin(); li != table[i].end(); ++li)
                std::cout << li->word << " ";
        }
    }
    ...

private:
    std::vector< std::list<entry> > table;
    ...
};
于 2013-10-14T21:16:11.097 に答える