使用字符串大小声明数组大小
Using String Size to Declare Array Size?
对不起,初学者在这里。我正在尝试从 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;
}
首先,不允许像你一样声明数组。我们来看看这两行代码
int y;
string x[y];
在第二行代码中,y
的值是多少?它可以是任何东西。编译器当然不知道,数组大小必须在编译时确定。
您的问题有两种解决方案:
使用指针并动态分配数组。
使用 std::vector 并让标准库负责动态分配。
IMO,两者都是你应该在你的程序员工具带中拥有的工具,所以你应该学习如何同时做这两件事。您还应该了解这两种方法的优缺点,以便您可以选择正确的方法来解决问题。
最后,您收到的错误消息意味着数组没有名为 size()
的成员。如果使用解决方案 1 解决此问题。以上,您需要自己跟踪大小。
相关文章:
- 无法将字符串数组声明为类成员而不是字符 (C++)
- 为什么从函数返回数组时需要将数组声明为静态数组.(C++)
- 在 c++ 中直接访问的内联数组声明
- 由于 2D 数组声明,C++ 14 中的运行时错误
- 如何将char数组声明为函数参数?或告诉我此代码中还有其他问题?
- 来自函数参数的 C++ 静态数组声明
- C++ 中的动态数组声明
- C++数组声明
- 数组声明中的错误:表达式必须具有常量值
- 程序随数组声明崩溃
- 运行时和编译时的数组声明
- C++数组声明和初始化
- 带有常量表达式的数组声明
- C ,数组声明,模板,链接器错误
- 如何用'n'维数组声明 std::vector?
- 数组声明上的编译器错误
- 这是什么数组声明
- 头文件类中的数组声明
- 节点数组声明
- 在静态数组声明中使用了两次C++常量