gpt4 book ai didi

c++ - 迭代顺序集合的习语

转载 作者:搜寻专家 更新时间:2023-10-31 01:50:58 26 4
gpt4 key购买 nike

在现代 C++ 中,当您只需要每个元素的值时,用于迭代顺序集合(如字符串或 vector )的习惯用法简短而优雅:

for (auto x: xs)

当你还需要索引时,它就没那么优雅了:

for (size_t i = 0; i != xs.size() ++i)

...除非有一些我尚未了解的最新进展。 C++11 是否有更好的方法来完成后者,或者上面的方法是否仍然很好?

最佳答案

Range-Based for loops 将在现代代码中非常流行,Range-Based for Loops对于支持范围概念的任何类型都有效。给定类型 T 的对象 obj,begin(obj)end(obj) 是有效的。包括:

  • 所有 C++11 库容器。
  • 数组和 valarray。
  • 初始化器列表。
  • 正则表达式匹配。
  • 任何 UDT(用户定义类型)T,其中 begin(T) 和 end(T) 产生合适的迭代器。

关于c++ - 迭代顺序集合的习语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14411520/

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