【发布时间】:2014-09-25 08:55:14
【问题描述】:
我声明了一个向量并循环它,但我得到了一个奇怪的行为。
vector<int> neg; #size of neg vector becomes two afterwards
int k=2 #k is 2 too
for(int i=neg.size()-1;i>=neg.size()-k;--i){
--do-something-with-the-value-of-vector-elements--
}
这随后会导致 seg vault。
但是当我将 for 循环更改为:
int st=neg.size()-k;
for(int i=neg.size()-1;i>=st;--i){
--do-something-with-the-value-of-vector-elements--
}
这工作得很好。我认为这是无符号和有符号元素添加的一些问题,但我不确定。我在这里遗漏了一些东西。谁能解释一下?
【问题讨论】:
-
您需要将 neg.size() 转换为 int。
-
我知道出了什么问题;这是一个数字 for 循环!