int H[500]; // global int array
int main()
{
int check[500];
bool same = true;
string input;
cout << "Enter Numbers: ";
getline(cin, input);
istringstream buf(input);
istream_iterator<string> beg(buf), end;
vector<string> tokens(beg, end);
int temp = 1;
for (auto& s : tokens) // error: expected initializer before ‘:’ token
{
H[temp] = atoi(s.c_str());
check[temp] = atoi(s.c_str());
temp++;
}
for (int ii = 1; ii < temp; ii++)
heapsort(temp);//cpp:43: error: expected primary-expression before ‘for’
// error: expected ‘;’ before ‘for’
// error: expected primary-expression before ‘for’
// error: expected ‘)’ before ‘for’
return 0;
}
当我尝试在putty上编译它时,我遇到了这些错误。它在视觉工作室上运行良好。我感谢任何帮助。谢谢。
编辑: 我在im on putty上使用“g ++ -0 filename filename.cpp”。
答案 0 :(得分:1)
Putty
不是编译器而是终端,因此我假设putty是指一些带有g++
或clang++
的远程Linux或Unix。我还假设您已经拥有所有必需的包含和命名空间指令,例如using namespace std;
语句,因为您说您已在其他地方成功编译了此代码。
我认为您的问题是您需要将-std=c++11
添加到编译器参数中。
另外,我使用strtol
或更好stringstream
代替atoi
,因为在使用atoi
时无法检查错误,因此您如果输入不正确,最终会在向量中出现一堆零。