Сообщение Re: range based for - первый/последний? от 13.03.2019 7:08
Изменено 13.03.2019 10:02 rg45
Re: range based for - первый/последний?
Здравствуйте, Marty, Вы писали:
M>Для нового range-for'а есть какой-нибудь вариант?
При помощи boost::make_iterator_range можно вырезать подпоследовательности из последовательностей самых разных типов (в т.ч. и встроенных массивов):
https://ideone.com/OSuZuC
M>Для нового range-for'а есть какой-нибудь вариант?
При помощи boost::make_iterator_range можно вырезать подпоследовательности из последовательностей самых разных типов (в т.ч. и встроенных массивов):
https://ideone.com/OSuZuC
#include <iostream>
#include <boost/range/iterator_range.hpp>
template <typename SequenceT>
void print_sequence(const SequenceT& seq)
{
if (!boost::empty(seq))
{
std::cout << "[" << *std::begin(seq);
for (const auto& item : boost::make_iterator_range(seq, 1, 0))
{
std::cout << ", " << item;
}
std::cout << "]"<< std::endl;
}
}
int main()
{
const int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
print_sequence(array);
}
Re: range based for - первый/последний?
Здравствуйте, Marty, Вы писали:
M>Для нового range-for'а есть какой-нибудь вариант?
При помощи boost::make_iterator_range можно вырезать подпоследовательности из последовательностей самых разных типов (в т.ч. и встроенных массивов):
Сложноватым пример показался? Упростил.
https://ideone.com/CSSJR2
M>Для нового range-for'а есть какой-нибудь вариант?
При помощи boost::make_iterator_range можно вырезать подпоследовательности из последовательностей самых разных типов (в т.ч. и встроенных массивов):
Сложноватым пример показался? Упростил.
https://ideone.com/CSSJR2
#include <iostream>
#include <boost/range/iterator_range.hpp>
int main()
{
const int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// Just process the first element separately. No checks required in the loop.
std::cout << *std::begin(array);
for (const auto& item : boost::make_iterator_range(array, 1, 0))
{
std::cout << ", " << item;
}
}