На днях друг-олимпиадник подкинул интересный способ быстрого заполнения контейнера.
template <typename _T, typename _V>
std::vector<_T> & operator,(std::vector<_T> & _vec, _V _elem)
{
_vec.push_back(_elem);
return _vec;
}
Такой «ход конём» имеет смысл использовать только для ускорения процесса разработки, потому что использование такого подхода многих может сбить с толку. Но в целом использование перегруженной запятой смотрится довольно красиво и логично:
std::vector<int> someMethod()
{
// bla-bla-bla
// вернуть вектор из трех элементов:
std::vector<int> v;
return (v, 1, 2, 3);
}
По аналогии можно сделать перегрузку и для других контейнеров. Кстати, в библиотеке Qt для всех контейнеров перегружен оператор <<, выполняющий аналогичную задачу.
P.S. Если будете использовать такое, не забудьте описать в конвенции ;)

