一度に 2 つの c-string を割り当てようとします。
char **pair = {"name","joe"};
しかし、エラーメッセージが表示されます:
'initializing' : cannot convert from 'const char [5]' to 'char **'
しかし、以前はそのようなことがうまくいったと思いますか?
一度に 2 つの c-string を割り当てようとします。
char **pair = {"name","joe"};
しかし、エラーメッセージが表示されます:
'initializing' : cannot convert from 'const char [5]' to 'char **'
しかし、以前はそのようなことがうまくいったと思いますか?
C++ 機能を使用すると、苦痛の世界から解放されます。
vector<string> field = { "name", "joe" };
必要かもしれませんが:
pair<string, string> field("name", "joe");
またはさらに良いことに、おそらく:
struct Person {
Person(const string& name) : name(name) {}
const string name;
};
Person boss("joe");
ここで与えられたすべての答えは正しいです。何を選択するかは、コンテキストによって異なります。
1 でも 2 でもない場合は、Peter Wood を選びます。ご了承ください
vector<string> field = { "name", "joe" };
C++11 が必要
Joachim アプローチは読み取り専用文字列を作成します。これが、const 文字列リテラルの配列を作成する方法です。
別の方法、
// MAX_LEN being the max string length.
char pair[][MAX_LEN] = {"name","joe"}; // This makes pair read-writeable,
const char *pair[] = { "名前", "ジョー" };
これが最善の解決策です