【发布时间】:2014-04-13 03:55:46
【问题描述】:
我一直致力于 Codility 的 MaxCounters 任务。我被卡住了。不管我怎么尝试,下面的代码都不会循环
// you can also use includes, for example:
// #include <algorithm>
vector<int> solution(int N, vector<int> &A)
{
vector<int> counter (N,0);
for (int i = 0;i < A.size();i++)
{
int value = A.at(i);
if (value = A.size() + 1)
{
}
else
counter[value - 1] += 1;
}
return (counter);
}
我已使用此网站找到解决问题的方法,但无济于事。我不断收到此错误消息。
在 user.cpp:20 中包含的文件中:func.cpp:在函数'std::vector > solution(int, std::vector >&)'中:func.cpp:7:警告:比较 有符号和无符号整数表达式 func.cpp:11:警告:建议 赋值的括号用作真值
任何想法为什么它总是抛出这个错误?
编辑:从其他测试中查看后,很明显无论我做了什么练习,我都会得到这个错误。因此,我得出结论,我还没有理解循环向量。遍历向量的正确方法是什么?
【问题讨论】:
-
==的诅咒...检查你的 if 子句.. -
甚至没有注意到这一点。错误仍然存在,但这阻止了未来的问题
-
当你说它不会循环时,你是什么意思?
-
一种方式:
for( auto value: A ) {....}(那是 C++11)。另一种方式:for( vector<int>::iterator i = A.begin(); i != A.end(); ++i ) { ...