vector的小问题,,,,,,,,,,
int func(std::vector<int>vec)
3.{
4. static int k = 2;
5. std::vector<int>::reverse_iterator it;
6. for(it = vec.rbegin(); it!=vec.rend(); ++it)
7. {
8. k += *it%2==0? ++*it: (*it)++;
9. }
10. return k;
11.}
12.int main(void)
13.{
14. std::vector<int>vec;
15. for(int i = 0; i<4; i++)
16. {
17. vec.push_back(i);
18. printf("%d ",func(vec));
19. }
20. return 0;
21.}
最终结果是 3 5 10 18
3我能算出来,,,后面的就算不出来了,,,谁能解释一下啊
[解决办法]
第一遍 vec是{0},k只加1次,结果是3
第二遍 vec是{0,1},k加了2次,两次都是1,结果是5
第三遍 vec是{0,1,2},k加了3次,分别是3,1,1,结果是10
第四遍 vec是{0,1,2,3},k加的是3,3,1,1,结果18