Вывод std::vector и std::list

Иногда хочется иметь возможность вывести содержимое std::vector или std::list в поток, что бы посмотреть что находится внутри. Это может понадобится например при отладке программы. Для этого я написал небольшой класс. С помощью него можно вывести любой std массив или список в поток.
Пример:

cout << "Vector:" << my_vector << endl;

Вывод:

Vector:{0, 1, 2, ... <96> ... , 99}

Если нужно вывести определённое количество элементов, то перед выводом массива следует написать show(int). Приведённый ниже код выведет первые 100 элементов:

cout << "Vector:" << show(100) << vec << endl;

Если нужно вывести весь массив, то нужно указать show(-1).

Так же можно выводить в любой выходной поток:

std::stringstream os;
os << "List:" << show(-1) << my_list << endl;

Скачать данный код можно тут: Debug.h
Примеры использования: cout_vector_debug.rar

Комментарии (2)

Роман

copy + ostream_iterator вам поможет =)

Роман, мне мой вариант нравится больше тем что он проще. + можно указывать и больше параметров чем только количество элементов для вывода.

Вы можете следить за обсуждением этой записи с помощью RSS

Оставить комментарий





Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:

Рубрики



Ссылки


наверх