Движение от строки до stringstream к вектору <интервал>

Вы можете использовать словарь, как показано в приведенном ниже коде, а затем цикл:

Dictionary<int, KeyValuePair<string, ConsoleColor>> keyValuePairs = new Dictionary<int, KeyValuePair<string, ConsoleColor>>();
keyValuePairs.Add(1, new KeyValuePair<string, ConsoleColor>("my blue text", ConsoleColor.Blue));
keyValuePairs.Add(2, new KeyValuePair<string, ConsoleColor>("my red text", ConsoleColor.Red));



foreach (var keyItem in keyValuePairs.Keys)
        {
            ConsoleColor color = keyValuePairs[keyItem].Value;
            string textTobeDisplayed = keyValuePairs[keyItem].Key;

            Console.ForegroundColor = color;
            Console.Write(textTobeDisplayed);
        }
6
задан Rakete1111 11 December 2016 в 19:39
поделиться

2 ответа

int num;
while (lineStream >> num) numbers.push_back(num);
16
ответ дан 8 December 2019 в 02:12
поделиться

Это - классический пример std::back_inserter.

copy(istream_iterator<int>(lineStream), istream_iterator<int>(),
     back_inserter(numbers));

Можно создать вектор с самого начала на, если Вы желаете

vector<int> numbers((istream_iterator<int>(lineStream)), 
                    istream_iterator<int>());

Не забудьте помещать круглые скобки вокруг первого аргумента. Компилятор думает, что это - объявление функции иначе. При использовании вектора для того, чтобы просто получить итераторы для чисел можно использовать istream итераторы непосредственно:

istream_iterator<int> begin(lineStream), end;
while(begin != end) cout << *begin++ << " ";
28
ответ дан 8 December 2019 в 02:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: