C++ 在for'中定义变量;s括号
我不明白为什么我的变量在第一次的整个身体中都不为人所知。 在for的括号中定义变量是如何工作的? (如果使用int i执行此操作,我仍然会收到错误)C++ 在for'中定义变量;s括号,c++,for-loop,scope,declaration,C++,For Loop,Scope,Declaration,我不明白为什么我的变量在第一次的整个身体中都不为人所知。 在for的括号中定义变量是如何工作的? (如果使用int i执行此操作,我仍然会收到错误) void cardlike(向量&v) { 无符号最大位置=0; int tmp; for(无符号i=0;i
void cardlike(向量&v)
{
无符号最大位置=0;
int tmp;
for(无符号i=0;iv[max_pos])
最大位置=j;
tmp=v[max_pos];
v[max_pos]=v[v.size()-i-1];
v[v.size()-i-1]=tmp;
}
}
这是我使用-std=c++11编译g++时从g++中得到的:
sortvector.cpp:93:38: error: ‘i’ was not declared in this scope
for(unsigned j = 0; j < v.size() - i; j++)
^
sortvector.cpp:98:29: error: ‘i’ was not declared in this scope
v[max_pos] = v[v.size() - i - 1];
^
sortvector.cpp:93:38:错误:“i”未在此范围内声明
对于(无符号j=0;j
在for循环的后面有一个不必要的分号
for (unsigned i = 0; i < v.size(); i++);
到
for(无符号j=0;jv[max_pos])
最大位置=j;
}
在for
循环的后面有一个不必要的分号
for (unsigned i = 0; i < v.size(); i++);
到
for(无符号j=0;jv[max_pos])
最大位置=j;
}
删除此处的分号:
for (unsigned i = 0; i < v.size(); i++)
^
for(无符号i=0;i
删除此处的分号:
for (unsigned i = 0; i < v.size(); i++)
^
for(无符号i=0;i
发布原因可能是个好主意吗?i、 e.(;;)的
循环遍历空语句(;;)x()的代码>和;y()代码>将仅循环通过x()代码>。可能类似于“虽然应该注意循环中只有一条语句(if
语句),但即使只有一行if
也是一个好习惯,因为这有助于在编辑代码时防止将来出现问题”。发布原因可能是一个好主意吗?i、 e.(;;)的
循环遍历空语句(;;)x()的代码>和;y()代码>将仅循环通过x()代码>。可能类似于“虽然应该注意循环中只有一条语句(if
语句),但即使只有一行if
s,也要养成一个好习惯,因为这有助于防止将来编辑代码时出现问题”
for (unsigned j = 0; j < v.size() - i; j++)
{
if(v[j] > v[max_pos])
max_pos = j;
}
for (unsigned i = 0; i < v.size(); i++)
^