- 我可以通過某個成員設置一個迭代器到一個字符串中的位置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();
+
和-
;您可以使用它們在迭代器和偏移量之間進行轉換。