Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- vector<string_view> SplitIntoWords(const string& s)
- {
- string_view str = s;
- vector<string_view> result;
- size_t pos = 0;
- const size_t pos_end = str.npos;
- while (true)
- {
- size_t space = str.find(' ', pos);
- result.push_back(space == pos_end ? str.substr(pos) : str.substr(pos, space - pos));
- if (space == pos_end)
- {
- break;
- }
- else
- {
- pos = space + 1;
- }
- }
- return result;
- }
- // создадим очень длинную строку,
- // состоящую из слов из ста 'a'
- string GenerateText() {
- const int SIZE = 10000000;
- string text(SIZE, 'a');
- for (int i = 100; i < SIZE; i += 100) {
- text[i] = ' ';
- }
- return text;
- }
- int main() {
- const string text = GenerateText();
- {
- LOG_DURATION("string");
- const auto words = SplitIntoWords(text);
- // выведем первое слово
- cout << words[0] << "\n";
- }
- {
- LOG_DURATION("string_view");
- const auto words = SplitIntoWordsView(text);
- // выведем первое слово
- cout << words[0] << "\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement