2012-01-05 3 views
0

スタンフォードのCS106 C++ライブラリを使ってネストされたテンプレート(ベクトルのマップ)を作成しました。これは通常のcomp-sci modusオペランドに従うと考えられています。マップの中に入れ子になっているベクトルに値を追加できません

Map<Vector<char> > mv; 

私はこれまでのところ、私はこれのバリエーションを試してみた...価値はもちろんベクタエントリで、キー/値のペアを、追加するための を構文を把握することはできません。

mv.put("key", 'A'); 
上記のコードから

エラー「ベクター」

置くために「チャー」からの生存の変換()は、キー/値のペアを追加メンバ関数です。

キーが正常に動作しています。問題は、charをaベクトルに挿入することです。私は既に作成されたキーに値を追加することに問題はありません。私はできない値で新しいキーを作成するだけです。

add()は、charをベクターに追加するためのメンバー関数です。

構文がどのように見えるようになっているか完全にはわかりませんが、私は運がないソリューションを探してみましたが、これまでに何の問題もありませんでした。感謝任意の助け

おかげで、:)

編集:私はここで、最初からこれを含まれている必要があります申し訳ありませんが、ライブラリのドキュメントです:http://www.stanford.edu/class/cs106b/cs106lib/

+0

マップには2つのタイプのパラメータが必要です。 – dasblinkenlight

+0

いいえ、そうではありません。このCS106マップタイプは常に 'string'をキーとして使用します。 –

+0

申し訳ありませんが、2つのタイプのパラメータはどういう意味ですか? – Jarrod

答えて

1

あなたはこのような何かを行うことができます。

Vector<char> v; 
v.add('A'); 
mv.put("key", v); 
+0

ベクターをベクターに入れ子に入れ子にするか? – Jarrod

+1

いいえ、あなたが 'put()'を使うまでは、与えられたキーの 'Vector'はありません。あなたはそこに実際のベクトルを入れなければなりません。 'Map'にキーが存在することを既に知っているときにVectorに値を追加するには、' mv.get( "key")。add( 'B'); 'を使います。しかし、キーが追加される前にこれを行うと、ランタイムエラーが発生します。 –

+0

ああ、本当です!それは意味があります:)ありがとうアーネスト!今完璧に働いています。これが私がStackOverflowを愛している理由です... 15分後に解決策があります。すばらしいです! – Jarrod