C ++初始化字符串数组

时间:2015-04-11 01:59:23

标签: c++ arrays string

我试图在字符串上初始化一个数组,但是出现了错误。注意:这适用于int arrays

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int n;
    cin >> n;
    string names[n];   //error here
}

2 个答案:

答案 0 :(得分:1)

包含<vector>标题并使用

vector<string> names( n );

如果你想保留现有的设计。

但是,使用vector,您可以使用push_back方法追加新项目(最后添加它们)。然后要求用户指定大小没有意义。相反,让最后一项之后的矢量大小为n

答案 1 :(得分:0)

这样做:

string *names = new string[n];

你的方法不起作用,因为如果你按照你的方式创建数组(按实例),那么你需要立即初始化它,如下所示:

string names[] = {"abc", "def", "ghi"};

如果动态分配数组,可以在需要时通过取消分配和重新分配来调整大小。

或者您可以使用矢量,您的选择。