Как вывести содержимое set в цикле?

465
28 декабря 2016, 04:36

Как вывести содержимое set в цикле?

Answer 1
for(auto i : set_object)
    cout << i << endl;

:)

Типа:

int main(int argc, const char * argv[])
{
    set<int> s = { 1,2,45,23,19,8};
    for(auto i : s)
        cout << i << endl;
}
Answer 2

Можно использовать обычный цикл for с итераторами, либо цикл на основе диапазона. Можно также использовать стандартные алгоритмы такие, как, например, std::copy или std::copy_if

Вот примеры вывода

std::set<int> s{ 1, 2, 3, 4, 5 };
for (std::set<int>::iterator it = s.begin(); it != s.end(); ++it)
{
    std::cout << *it << ' ';
}
std::cout << std::endl;
for (const auto &item : s) std::cout << item << ' ';
std::cout << std::endl;
std::copy(s.begin(), s.end(),
    std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
std::copy_if(s.begin(), s.end(),
    std::ostream_iterator<int>(std::cout, " "),
    [](int x) { return x % 2 != 0; });
std::cout << std::endl;

Вывод этих фрагментов кода будет следующим

1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 3 5

Объявление итератора в этом цикле

for (std::set<int>::iterator it = s.begin(); it != s.end(); ++it)

можно упростить

for (auto it = s.begin(); it != s.end(); ++it)
READ ALSO
error: &#39;stoi&#39; is not a member of &#39;std&#39;

error: 'stoi' is not a member of 'std'

Пытаюсь собрать Nana библиотеку с помощью 32-битного MinGW+CMake+Clion и получаю ошибки:

436
Не выходит из цикла при чтении из файла

Не выходит из цикла при чтении из файла

Во время считывания из файла функция не выходит из цикла,

381
Удаление виджетов, размещенных в QLayout

Удаление виджетов, размещенных в QLayout

Есть QScrollArea или любой другой виджетВ него добавляются другие виджеты и, соответственно, рисуются на нем

389
В файл записываются левые данные c++

В файл записываются левые данные c++

При записи в файл, помимо текста добавляются различные символы, хотя если вызывать функцию без переменной с текстом, то все хорошо

353