OS X 错误非 pod 元素类型 'string' 的可变长度数组
OS X error variable length array of non pod element type 'string'
我想在 c++ 中使用字符串,但我不能。当我创建字符串时,我总是收到一条错误消息。我想免除这个问题,所以如果可能的话,我不想使用.(我不知道,我应该如何使用矩阵字符串)
这是我代码的一小部分:
#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
string fajlnev="tancrend.txt";
ifstream fajl(fajlnev.c_str());
int i=0;
int db=0;
string atmeneti;
while (!fajl.eof())
{
getline(fajl,atmeneti);
getline(fajl,atmeneti);
getline(fajl,atmeneti);
db++;
}
db--;
string tanc[db][3];
fajl.close();
ifstream fajl2(fajlnev.c_str());
for(i=0;i<db;i++)
{
fajl2>>tanc [i][0];
fajl2>>tanc [i][1];
fajl2>>tanc [i][2];
}
string tanc[db][3];
C++是非法的。用作数组大小的所有值都应该是编译时常量(因此您应该能够在执行程序之前知道确切的值)。
一些编译器允许可变长度数组作为语言扩展,但这些通常是有限的(通常它们允许 C 允许的,仅此而已)。
在您的情况下,最好使用可变长度C++容器:std::vector
std::vector<std::array<std::string, 3>> tanc(db);
相关文章:
- 创建 std::string 的二维数组的最佳做法
- <string> 如何在使用 SWIG 时将 int 数组和 List 作为参数传递给 C# C++
- 使用 .data() 将字符数组转换为 std::string 不会转换整个数组
- 如何正确删除 std::string 数组
- 将空填充但不以空结尾的固定长度字符数组转换为 std::string 的最佳方法
- "Error reading character of string" 为哈希动态增长数组的问题 (C++)
- 将C 数组写成文件,避免创建std :: String
- 使用STD :: String和字符数组之间的选择
- 将字符数组转换为 std::string 以传递到 std::bitset seg 错误
- 将 std::string 重新解释为无符号的 int 数组
- std::string 参数是如何从原始字符数组文本传递的
- C++将向量转换为<string>无符号字符数组
- 数据结构对齐:为什么Char和STD :: String的数组不同
- 尝试使用Huffman String代码更新数组
- C++:矢量<string>到字符数组
- 如何将包含 '