vector<int>::iterator it;
vector<int> p;
p.push_back(4);
p.push_back(5);
p.push_back(6);
p.push_back(7);
it = p.begin() + 2;
cout << it << endl;
Run Code Online (Sandbox Code Playgroud)
是这个O(N)还是O(1)?为什么?
Nav*_*een 15
它是O(1)因为它具有恒定的操作数.
Oza*_*zan 13
正如其他人所说,这是O(1).但是,如果你打算写这样的东西:
vector<int>::iterator it;
vector<int> p;
p.push_back(4);
p.push_back(5);
p.push_back(6);
p.push_back(7);
...
p.push_back(n);
it = p.begin() + 2;
cout << *it << endl;
Run Code Online (Sandbox Code Playgroud)
即:
for (int i=4;i<=n;i++)
p.push_back(i);
Run Code Online (Sandbox Code Playgroud)
然后它将是O(n),因为vector :: push_back()和vector :: begin()是O(1)并且vector :: push_back()执行n-3次.
| 归档时间: |
|
| 查看次数: |
1959 次 |
| 最近记录: |