抱歉初学者在这里。我试图从cin函数中获取字符串大小,然后使用它来声明数组大小。但是它说:
第17行:在'x'中请求成员'size',这是非类型'std :: string long int'。
虽然没有数组但工作正常。
#include <iostream>
#include <string>
using namespace std;
int main()
{
int y;
string x[y];
cout << "Enter sequence" << endl;
cin >> x[y];
y = x.size;
for (int i = 0; i > y; i++)
cout x[i];
cout << "The size of the sequence is " << x.size() << " characters." << endl;
}
答案 0 :(得分:1)
首先,不允许像你一样声明一个数组。我们来看看这两行代码
int y;
string x[y];
在第二行代码中,y
的值是多少?它可能是任何东西。当然编译器不知道,并且数组大小必须在编译时确定。
您的问题有两种解决方案:
使用指针并动态分配数组。
使用std :: vector并让标准库负责动态分配。
IMO,两者都是程序员工具带中应该具有的工具,因此您应该学会如何做到这两者。您还应该了解这两种方法的优点和缺点,以便您可以选择正确的方法来解决问题。
最后,您获得的错误消息意味着数组没有名为size()
的成员。如果您使用上述解决方案1解决此问题,则需要自己跟踪大小。