На днях друг-олимпиадник подкинул интересный способ быстрого заполнения контейнера.
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. Если будете использовать такое, не забудьте описать в конвенции ;)