首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

vector的小疑点,

2013-04-26 
vector的小问题,,,,,,,,,,int func(std::vectorintvec) 3.{ 4.static int k 2 5.std::vectorint::r

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

热点排行