How can I iterate through a string and also know the index (current position)?(如何遍历字符串并知道索引(当前位置)?)
问题描述
通常在遍历字符串(或任何可枚举对象)时,我们不仅对当前值感兴趣,而且对位置(索引)感兴趣.要通过使用 string::iterator
来实现这一点,我们必须维护一个单独的索引:
Often when iterating through a string (or any enumerable object), we are not only interested in the current value, but also the position (index). To accomplish this by using string::iterator
we have to maintain a separate index:
string str ("Test string");
string::iterator it;
int index = 0;
for ( it = str.begin() ; it < str.end(); it++ ,index++)
{
cout << index << *it;
}
上面显示的样式似乎并不优于'c-style':
The style shown above does not seem superior to the 'c-style':
string str ("Test string");
for ( int i = 0 ; i < str.length(); i++)
{
cout << i << str[i] ;
}
在 Ruby 中,我们可以优雅地获取内容和索引:
In Ruby, we can get both content and index in a elegant way:
"hello".split("").each_with_index {|c, i| puts "#{i} , #{c}" }
那么,在 C++ 中迭代可枚举对象并跟踪当前索引的最佳做法是什么?
So, what is the best practice in C++ to iterate through an enumerable object and also keep track of the current index?
推荐答案
我从未听说过针对这个特定问题的最佳实践.但是,一般来说,一种最佳实践是使用解决问题的最简单的解决方案.在这种情况下,数组样式访问(或 c 样式,如果您想这样称呼它)是在索引值可用的同时进行迭代的最简单方法.所以我当然会推荐这种方式.
I've never heard of a best practice for this specific question. However, one best practice in general is to use the simplest solution that solves the problem. In this case the array-style access (or c-style if you want to call it that) is the simplest way to iterate while having the index value available. So I would certainly recommend that way.
这篇关于如何遍历字符串并知道索引(当前位置)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何遍历字符串并知道索引(当前位置)?
基础教程推荐
- C++ 标准:取消引用 NULL 指针以获取引用? 2021-01-01
- 调用std::Package_TASK::Get_Future()时可能出现争用情况 2022-12-17
- 如何在 C++ 中处理或避免堆栈溢出 2022-01-01
- C++,'if' 表达式中的变量声明 2021-01-01
- 如何定义双括号/双迭代器运算符,类似于向量的向量? 2022-01-01
- 什么是T&&(双与号)在 C++11 中是什么意思? 2022-11-04
- 您如何将 CreateThread 用于属于类成员的函数? 2021-01-01
- 运算符重载的基本规则和习语是什么? 2022-10-31
- 设计字符串本地化的最佳方法 2022-01-01
- C++ 程序在执行 std::string 分配时总是崩溃 2022-01-01