をLOWER_BOUND使用して、ネストされたマップは、値としてキーと年齢とIDが含まれています。私は地図を印刷するとき、それは必要な値を印刷します。私は文字列は、学生の名前が含まれてい</p> <pre><code>map<string , map<int,int>> </code></pre> <p>のように見えるの地図を持って、ネストされた地図上
しかし、特定のID以下の学生を探したいです。私が使用してLOWER_BOUND使用してみました:
for(auto &x : class){
auto it = x.second.upper_bound(some_number);
for(; it != x .second.begin() ; --it){
cout << x.first << " = " << << it -> first << " " <<it -> second << endl;
}
}
これは確かに学生の権利名前を出力しますが、そのIDと年齢は、この動作を引き起こしているものを、ちょうどゼロまたはランダムな数字ですか?私はそれを印刷するだけで動作します。
私はこれについてcpp map referenceで見つけようとしましたが、何も見つかりませんでした。まず、それはsome_number
より厳密に大きいIDを持つイテレータを見つけ、
for(auto &x : Class){
auto it = x.second.upper_bound(some_number);
while(it!=x.second.begin()){
it=prev(it);
cout<< x.first<< " = "<< it->first<< " "<< it->second<< endl;
}
}
があるんどのようなコード上記
std::map::upper_boundを参照してください。
[、最小完全、かつ検証例]を取得することは可能であろう(http://stackoverflow.com/help/mcve) – JVApen
これは奇妙なデータ構造です。 1人の学生が自分の名前で識別され、複数のIDと年齢を持つことができますか? –
'class'というマップをどのように宣言しましたか? –