嗯...我想我的理解正則表達式,我想我明白迭代器,但C++ 11的正則表達式實施,我不解......C++ 11 regex_token_iterator
的一個領域,我不明白:閱讀有關regex token iterators,我碰到下面的示例代碼:
#include <fstream>
#include <iostream>
#include <algorithm>
#include <iterator>
#include <regex>
int main()
{
std::string text = "Quick brown fox.";
// tokenization (non-matched fragments)
// Note that regex is matched only two times: when the third value is obtained
// the iterator is a suffix iterator.
std::regex ws_re("\\s+"); // whitespace
std::copy(std::sregex_token_iterator(text.begin(), text.end(), ws_re, -1),
std::sregex_token_iterator(),
std::ostream_iterator<std::string>(std::cout, "\n"));
...
}
我不明白怎麼以下的輸出:
Quick
brown
fox.
正被性病::複製()創建函數的以上。我看不到任何循環,所以我對迭代的發生感到困惑。換句話說,如何產生多於一行的輸出?
它將每一個複製到輸出。循環在'copy'裏面。 – chris