2012-02-26 14 views
0

複数の異なるクラスタイプを単一のstd::listオブジェクトに格納することは可能ですか?単一のリスト内の複数のクラスタイプ

intstd::listを要素として格納できる多層リストを作成したいと考えています。この目的でstd::listを使用しようとしています。トップレベルとそれに続くレイヤーの両方からすべてのリストからデータを取得する必要があります。

This question hereは、あらかじめ定義されたクラスを使用する以外は似ています。

第四行で次を返しますエラー:

std::list<int> l; 
std::list<int> subL; 
l.push_back(1); 
l.push_back(subL); 

これは、(1行目によると、第3回)第一のエラーを返します:

std::list l; 
std::list<int> subL; 
l.push_back(1); 
l.push_back(subL); 
+2

P:タイトルでタイトルを書くのをやめてください。 –

+1

はい、可能です。しかし、なぜそれをしたいのですか?後でそれをどのように使用しますか? – Nawaz

+0

@Nawazは指摘してくれてありがとう。目的を明確にするために質問を更新しました。 – IsaacS

答えて

1

あなたはlist <void*>を宣言し、それがポインタに格納することができどんなオブジェクトにも。しかし、もう一つの質問は、あなたがそれらを使い分ける方法を上げるでしょうか?あなたがする必要がなければ、それはOKです。

+0

+1しかし、私は私の質問を更新したので、私は保存されたデータを取得し、お互いから伝える必要があります。 – IsaacS

+1

最も簡単な解決策 - whrapperクラスを 'struct w {void * value;ブールisInt; }; 'それらのリストを作成する。 –

1

boost::variantなどを使用すると、両方の型を1つの値に格納できます。

関連する問題