gpt4 book ai didi

c++ - 迭代 C++ 容器时是否可以定义 'step' 大小?

转载 作者:行者123 更新时间:2023-12-02 09:51:30 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





C++ range for loops with custom step

(2 个回答)


1年前关闭。




我知道迭代字符串的每个字符的简单方法,例如:

std::string some_string("Hello World");
for(auto character : some_string)
std::cout << character << std::endl;
但是有没有办法使用这种结构来告诉它采取措施,或者以这种方式采取特定长度的容器?还是我必须使用经典的 int i = 0; i < some_string.length(); i+=2用于迭代字符串索引并使用 string.substr() 存储部分索引的构造?例如,如果我想将字符串的每 2 个字符存储为子字符串。

最佳答案

此范围基于 for 循环(来自 cppreference):

for ( init-statement(optional)range_declaration : range_expression ) loop_statement 
相当于:
{

init-statement
auto && __range = range_expression ;
auto __begin = begin_expr ;
auto __end = end_expr ;
for ( ; __begin != __end; ++__begin) {

range_declaration = *__begin;
loop_statement

}

}
(查看链接了解 begin_exprend_expr 是什么以及更多详细信息)
没有(简单的)方法可以使它增加一个以上。基于范围的 for 循环的优点是您不需要关心索引或迭代器。如果你想对索引做一些事情,那么使用基于范围的循环并不是一个优势。

关于c++ - 迭代 C++ 容器时是否可以定义 'step' 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64336460/

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