-3

文字列へのポインタの配列を作成しようとしています。各文字列に 3 文字のみを含める必要があります。これは私がこれまでに持っているコードです:

 string **ptr=new string *[100];    // An array of 100 pointers to strings

for (i=0;i<100; i++)            // Assigning each pointer with a new string
{
    ptr[i]=new string;
    (*ptr[i])[3];
}

行 (*ptr[i])[3]) に問題があります。ポインターを介さずに 3 文字のみの srting を作成する場合は、次のように記述します。

string str[3];

ポインターで 3 文字を割り当てるにはどうすればよいですか? ありがとう!

4

2 に答える 2

8
std::vector<std::string> vec(100, "   ");

これは、自分でメモリを管理する必要なく、まさにあなたが探していることを行います。

string str[3];

これは 3 文字の文字列を作成するのではなく、3 つの文字列の配列を作成します。

于 2013-10-31T15:26:51.527 に答える
-1

(*ptr[i])[3];文字列の 4 番目の文字にアクセスするだけで、サイズは変更しません。ただし、 std::string はresize()メソッドを提供します。

すでに述べたように、string str[3]3 つの文字列の配列を作成しますが、それについて話そうとしているとは思いません。

すでに指摘したように、次のように size 引数と fill char を取る文字列 ctor を使用できます。

ptr[i]=new string( 3, ' ' );

もちろん、ベクトルを使用する必要があります。

于 2013-10-31T15:27:31.983 に答える