私はあなたの質問をよく理解していませんでしたが、これはあなたが探しているものだと思います:
#include <string>
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, map<int, string> > m;
m[0][0] = "one";
m[1][3] = "two";
cout<<m[0][0]<<endl;
cout<<m[1][3]<<endl;
}
string> の後に空白スペースを残す必要があることに注意してください。
また
すべての文字を int に変換する場合:
#include <string>
#include <iostream>
using namespace std;
int main()
{
string s;
s = "one";
int arr[2][10];
int a = s.size();
for(int i=0;i<a;i++)
{
arr[0][i] = s[i];
}
cout<<arr[0][0]<<" "<<(char)arr[0][1]<<endl;
}
編集
完全なソース コードを投稿します。私の例は、私のローカル コンパイラで動作しています。提供されたコード サンプルでは、_menu_item という変数を宣言していますが、_myvar を使用しています。完全なコードのどこかで _myvar を別の方法で宣言している可能性があります。
最初の値でマップ エントリを見つけるには、find() を使用できます。Find は反復子を返します。
#include <string>
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int , map<int,string> > _myvar, my;
_myvar[0][0] = "Some String00";
_myvar[0][1] = "Some String01";
_myvar[0][2] = "Some String02";
_myvar[1][0] = "Some String10";
map<int , map<int,string> >::iterator it; /* This is an iterator for this kind of map.
You can use it to assign a position to it from the map. */
it = _myvar.find(0); //Like this
_myvar.erase (it); // And use it for example like this
_myvar[3] = _myvar.find(0)->second ; // The pointer ->second gives the second value of the map. In this case an another map.
}
値で検索するには、これを使用できます:
for (it = _myvar.begin(); it != _myvar.end(); ++it)
{
if (it->second == value)
{
key = it->first;
break;
}
}