fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. template<typename T>
  6. ostream& operator << (ostream& os, vector<T>& vec){
  7. os << "{";
  8. for(int i=0; i<vec.size(); i++){
  9. os << vec[i] << ( i+1 == vec.size() ? "" : "," );
  10. }
  11. os << "}";
  12. return os;
  13. }
  14.  
  15. template<typename H>
  16. void input_set(istream& is, const int idx, vector<H>& head){
  17. is >> head[idx];
  18. }
  19.  
  20. template<typename H, typename ... T>
  21. void input_set(istream& is, const int idx, vector<H>& head, T& ... tail){
  22. input_set(is >> head[idx], idx, tail...);
  23. }
  24.  
  25. template<typename H, typename ... T>
  26. void input_set(istream& is, vector<H>& head, T& ... tail){
  27. for(int i=0; i<head.size(); i++) input_set(is, i, head, tail...);
  28. }
  29.  
  30. template<typename H, typename ... T>
  31. void input_set(vector<H>& head, T& ... tail){
  32. input_set(cin, head, tail...);
  33. }
  34.  
  35. int main(){
  36. int n;
  37. cin >> n;
  38.  
  39. vector<int> a(n);
  40. vector<double> b(n);
  41. vector<string> c(n);
  42.  
  43. input_set(a,b,c);
  44.  
  45. cout << a << endl;
  46. cout << b << endl;
  47. cout << c << endl;
  48. return 0;
  49. }
Success #stdin #stdout 0s 3464KB
stdin
3
1 0.1 abc
2 0.2 efg
9 0.5 xyz
stdout
{1,2,9}
{0.1,0.2,0.5}
{abc,efg,xyz}