c++ STL vector修改一个元素值的最快方法是怎样的?

c++ STL vector修改一个元素值的最快方法是怎样的?

阅读 2.5k
2 个回答

你是说怎样快速找到元素并修改吧, 一般用algorithm中的find方法找到索引,直接修改。

新手上路,请多包涵

这个要分情况讨论了,如果已知下标或者迭代器可以直接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)来修改。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题