表达式必须有一个常量值
我想从字符串输入中创建一个数组。表达式必须有一个常量值
string input;
getline(cin,input);
string inputarray1[100];
istringstream pp(input);
int* inputPosition=0;
while (!pp.eof())
{
getline(pp, inputarray1[*inputPosition], ' ');
inputPosition++;
}
int* a = inputPosition;
string halp[a];
我使用函数getline来分析我的输入(连同一个istringstream),并把该到一个数组,但我怎么可以创建已经没有多余的空位置的阵列?
使用的载体,从头部<vector>
vector<string> inputArray;
while (getline(pp, input, ' '))
inputArray.push_back(input);
可以与inputArray.size()
获得串的数量,并可以访问单个元件,正如与阵列,inputArray[index]
。
注意operator>>
被分隔在空格,所以你可能也做到这一点(除非你出于某种原因要区别对待标签)
while (pp >> input)
inputArray.push_back(input);
即工作,但现在 尝试{ 如果(的atoi(inputarrayconverted [P] .c_str())> = 0){ inputarrayconverted [P] = “N”; } } catch(int e){} 不起作用。它给了我一个“Debug Assertion Failed!”信息。我所要做的就是验证如果数组的位置是一个int,将其他数组的相应值更改为'n' –
我不是100%清楚你的问题,但它听起来像你真的想用一个Hash Table而不是一个数组。这样可以让您将用户输入映射到其他位置,而不需要您提到的空白阵列位置。
我想我主要是问如何在while循环中创建一个计数器,并使用该最终数字来创建一个相同大小的新数组,然后将inputarray1 []映射到halp []。 所有解决这些问题的网站都会说“创建一个大型数组,存储您的值,然后再创建一个更小尺寸的数组”。我想我只是混淆了如何创建适当大小的数组。 –
然后你可以使用类似矢量的东西。见Benjamin Lindley的答案。 – Oleksi
我认为你需要做更多的介绍一下你努力完成,而不是如何尝试完成它。 –
如何使用矢量而不是数组? –
为什么你使用int指针作为int? –