Cでこのようなマップをどのように表現できますか?constを文字列に変換するための慣用句C
{
{1, "One"},
{1000, "One thousand"},
{1000000, "One million"}
}
キーはint型で、大きなint型にすることができます。値は定数文字列であり、コンパイル時に認識されます。
マップには20または30の要素が含まれます。
私はこの関数を記述します。
const char* numbers(const int i)
{
switch(i) {
case 1: return "One";
case 1000: return "One thousand";
case 1000000: return "One million";
default: return "";
}
}
はそれをやって、任意の適切な(慣用)方法は何ですか?
これは、ハッシュテーブルのためのものです。 Cでは、他の高水準言語とは異なり、言語はそのような機能を提供しておらず、あなた自身のものを考え出す必要があります。 –
@BlagovestBuyukliev:整数をハッシュするのはやや珍しいことです。数字キーの場合、バイナリ検索が一般的です。 (もちろん、あなたは* can *ですが、積分データでテストされるハッシュ関数はあまりありません)。 –
@Dietrich:はい、確かに、私はより一般的な意味で話していました。 –