我试图在字符串上初始化一个数组,但是出现了错误。注意:这适用于int arrays
。
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
string names[n]; //error here
}
答案 0 :(得分:1)
包含<vector>
标题并使用
vector<string> names( n );
如果你想保留现有的设计。
但是,使用vector
,您可以使用push_back
方法追加新项目(最后添加它们)。然后要求用户指定大小没有意义。相反,让最后一项之后的矢量大小为n
。
答案 1 :(得分:0)
这样做:
string *names = new string[n];
你的方法不起作用,因为如果你按照你的方式创建数组(按实例),那么你需要立即初始化它,如下所示:
string names[] = {"abc", "def", "ghi"};
如果动态分配数组,可以在需要时通过取消分配和重新分配来调整大小。
或者您可以使用矢量,您的选择。