在C++中,std::vector
的operator[]
即at()
函数的时间复杂度是O(1),因为它可以通过直接索引访问元素,不需要遍历数组。而operator[]
在不进行边界检查时的时间复杂度也是O(1)。
请注意,尽管at()
函数提供了边界检查,但这并不会改变其基本的时间复杂度,只是增加了一个额外的检查步骤。如果不需要边界检查,可以直接使用operator[]
以获得更快的访问速度。
另外,对于std::array
和std::string
等其他STL容器,operator[]
的时间复杂度也都是O(1)。这些容器都支持随机访问迭代器,因此可以通过索引直接访问元素。