gpt4 book ai didi

c++ - 将 std::vector 元素指针转换为索引

转载 作者:行者123 更新时间:2023-11-27 22:42:50 27 4
gpt4 key购买 nike

我可以将 std::vector 元素指针转换为索引吗?

http://coliru.stacked-crooked.com/a/cedf3d849539e001

template<class T>
std::size_t get_index(std::vector<T>& vec, T* ptr){
const std::size_t i = ptr - &(*vec.begin());
return i;
}

如果 vector 中的元素保证是连续的,那么我认为我们可以进行这样的指针运算......或者不?

最佳答案

vector 元素是连续存储的,是的。您也可以使用 std::vector<T>::data()而不是 &*std::vector<T>::begin() .

您可以在以下位置阅读更多信息:http://en.cppreference.com/w/cpp/container/vector

PS:已经有一个关于这个的问题 - Are std::vector elements guaranteed to be contiguous?

关于c++ - 将 std::vector 元素指针转换为索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46953268/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com