c++ STL vector修改一个元素值的最快方法是怎样的?
这个要分情况讨论了,如果已知下标或者迭代器可以直接O(1)修改:
vector<int> v = {1, 2, 3, 4, 5};
int pos = 3;
v[3] = 0;
//v = {1, 2, 3, 0, 5}
如果不知道下标,只知道值,还要再分数组是否有序,如果有序可以二分找到上下界,然后修改O(logn),否则只能遍历一遍O(n)来修改。
4 回答1.1k 阅读✓ 已解决
4 回答1.1k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答691 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.6k 阅读
2 回答1.3k 阅读
你是说怎样快速找到元素并修改吧, 一般用algorithm中的find方法找到索引,直接修改。