- 1
- 2
- 3
- 4
vector<int> v = {1, 4, 6};
cout << "(";
copy(v.begin(), v.end(), ostream_iterator<int>(cout, ", "));
cout << ")";
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+46
vector<int> v = {1, 4, 6};
cout << "(";
copy(v.begin(), v.end(), ostream_iterator<int>(cout, ", "));
cout << ")";
http://ideone.com/2j2jQG
LispGovno 21.02.2014 16:02 # +9
Konardo 21.02.2014 16:10 # −23
Soul_re@ver 21.02.2014 16:36 # +1
Кстати в одном из черновиков стандарта проскакивало предложение добавить в ostream_iterator опциональный параметр: выводить ли разделитель после последнего элемента.
LispGovno 21.02.2014 17:06 # +1
bormand 21.02.2014 20:37 # +2
А как он узнает, что элемент последний? :)
Тогда уж выводить разделитель перед всеми элементами кроме первого. Это очень просто реализовать, а результат такой же.
Soul_re@ver 21.02.2014 20:51 # +1
http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3581.html
В самом низу.
guest 22.02.2014 03:08 # −1
bormand 22.02.2014 07:56 # −1
Ну string-builder в крестах это std::string_stream. А вот штатной склейки по разделителю вроде как нету. Ну по крайней мере мне не попадалась.
defecate-plusplus 22.02.2014 10:18 # +3
и split, и join
defecate-plusplus 21.02.2014 17:46 # +5
http://ideone.com/aY3boz
Konardo 21.02.2014 17:53 # −25
Dummy00001 21.02.2014 23:11 # +2
roman-kashitsyn 22.02.2014 09:52 # 0
Dummy00001 22.02.2014 13:55 # +1