2011-02-14 13 views
0
typedef map <int, string> MAP_INT_STRING; 

    MAP_INT_STRING mapIntToString; 
    mapIntToString.insert (MAP_INT_STRING::value_type (3, “Three”)); 

値がソースコードを介してマップに挿入されている例が見つかりました。私は、プログラムの実行中にユーザーに許可する方法を知りたい。これは何らかのforループを伴うイメージですが、設定方法はわかりません。マップに値を挿入する

+1

それらをあなたのソースコードのコピーを与える:) –

+0

あなたはおそらく、ユースケースやシナリオを、あなたの質問を明確にすることはできますか?ユーザーはシステムとどのように対話しますか? – jmort253

答えて

2

今、真剣に話しています。まずユーザーから値を取得し、マップに値を挿入する必要があります。このような何か:

std::map<int, std::string> m; 
while (true) { 
    std::cout << "please give me an int\n"; 
    int i; 
    std::cin >> i; 
    std::cout << "now gimme some string\n"; 
    std::string s; 
    std::cin >> s; 
    m.insert(std::make_pair(i, s)); 
    std::cout << "continue? (y/n)"; 
    char c; 
    std::cin >> c; 
    if (c != 'y') 
     break; 
} 
+1

intを求めるときに "abc"と入力するとどうなりますか? –

+1

@Fred:tnx、私は言及を忘れていた:それは確かに生産のための解決策ではない。エラー処理を実装する必要があります –

3
int main() { 
    using namespace std; 
    map<int, string> m; 
    cout << "Enter a number and a word: "; 
    int n; 
    string s; 
    if (!(cin >> n >> s)) { 
    cout << "Input error.\n"; 
    } 
    else { 
    m[n] = s; 
    // Or: m.insert(make_pair(n, s)); 
    } 
    return 0; 
} 
関連する問題