- 我可以通过某个成员设置一个迭代器到一个字符串中的位置5或我必须做一个
for(i = 0; i < 5; ++i) iterator++;
? - 给定一个Iterator,如何将其转换为字符串中的数字偏移量?
- 如果std :: iterators不可能这样做可以提升吗?
迭代< - >偏移std :: string ::迭代器偏移和返回
for(i = 0; i < 5; ++i) iterator++;
?迭代< - >偏移std :: string ::迭代器偏移和返回
我可以设置一个迭代器通过一些成员在一个字符串的位置5
您可以使用std::advance
std::advance(iterator, 5);
或
iterator += 5;
给定一个Iterator,如何将其转换为 字符串中的数字偏移量?
您可以使用std::distance
std::distance(string.begin(), iterator);
或
iterator - string.begin()
的std :: string迭代器是随机访问迭代器,它定义了+操作。你可以通过begin(str) + 5
得到一个迭代器来定位5。可以通过std::distance
来计算偏移量,其使用随机访问迭代器的操作器。
iterator + 4
iterator - str.begin();
+
和-
;您可以使用它们在迭代器和偏移量之间进行转换。