gpt4 book ai didi

c++ - 这是在 vector 中查找元素位置的合法方法吗?

转载 作者:太空狗 更新时间:2023-10-29 20:02:16 28 4
gpt4 key购买 nike

<分区>

我的代码中有以下循环:

for (const auto& item : vec) {...}

为了找到item的位置在 vec ,我这样做:

size_t pos = ((size_t)&item-(size_t)vec.data())/sizeof(item);

但感觉有点像“C”(与“C++”相反)。

我知道如果我将循环格式更改为以下任一格式,我可以实现此目的:

  • for (size_t i = 0; i < vec.size(); i++) {...}
  • for (auto it = vec.begin(); it != vec.end(); it++) {...}

但我想避免这样做。

底线问题:

  1. 语言标准是否保证我的方法?
  2. 是否有更“C++”的方法可以在不改变循环格式的情况下做到这一点?

谢谢。

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