1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | #include <deque> #include <list> #include <iostream> #include <sstream> #include <string> #include <utility> #include <vector> namespace make_sure_to_put_these_overloads_in_a_namespace { // Your PrintSequence adapted to a stream instead of a string: template<class Iter> void PrintSequence(std::ostream &s, const char* delim, Iter begin, Iter end) { s << delim[0]; int size = 0; if (begin != end) { s << *begin; ++size; while (++begin != end) { s << ", " << *begin; ++size; } } s << delim[1] << '<' << size << '>'; } #define OUTPUT_TWO_ARG_CONTAINER(Sequence) \ template<class T1, class T2> \ std::ostream& operator<<(std::ostream &s, Sequence<T1, T2> const &seq) { \ PrintSequence(s, "[]", seq.begin(), seq.end()); \ return s; \ } OUTPUT_TWO_ARG_CONTAINER(std::vector) OUTPUT_TWO_ARG_CONTAINER(std::deque) OUTPUT_TWO_ARG_CONTAINER(std::list) // other types #undef OUTPUT_TWO_ARG_CONTAINER template<class First, class Second> std::ostream& operator<<(std::ostream &s, std::pair<First, Second> const &p) { \ s << "(" << p.first << ", " << p.second << ")"; return s; } } template<class T> std::string AsString(T const &v) { using namespace make_sure_to_put_these_overloads_in_a_namespace; std::ostringstream ss; ss << v; return ss.str(); } int main() { using namespace std; vector<int> v; v.push_back(1); v.push_back(2); std::cout << "v = " << AsString(v) << '\n'; vector<vector<int> > m; m.push_back(v); m.push_back(v); std::cout << "m = " << AsString(m) << '\n'; return 0; } |
I2luY2x1ZGUgPGRlcXVlPgojaW5jbHVkZSA8bGlzdD4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHV0aWxpdHk+CiNpbmNsdWRlIDx2ZWN0b3I+CgpuYW1lc3BhY2UgbWFrZV9zdXJlX3RvX3B1dF90aGVzZV9vdmVybG9hZHNfaW5fYV9uYW1lc3BhY2UgewoKLy8gWW91ciBQcmludFNlcXVlbmNlIGFkYXB0ZWQgdG8gYSBzdHJlYW0gaW5zdGVhZCBvZiBhIHN0cmluZzoKdGVtcGxhdGU8Y2xhc3MgSXRlcj4Kdm9pZCBQcmludFNlcXVlbmNlKHN0ZDo6b3N0cmVhbSAmcywgY29uc3QgY2hhciogZGVsaW0sCiAgICAgICAgICAgICAgICAgICBJdGVyIGJlZ2luLCBJdGVyIGVuZCkKewogIHMgPDwgZGVsaW1bMF07CiAgaW50IHNpemUgPSAwOwogIGlmIChiZWdpbiAhPSBlbmQpIHsKICAgIHMgPDwgKmJlZ2luOwogICAgKytzaXplOwogICAgd2hpbGUgKCsrYmVnaW4gIT0gZW5kKSB7CiAgICAgIHMgPDwgIiwgIiA8PCAqYmVnaW47CiAgICAgICsrc2l6ZTsKICAgIH0KICB9CiAgcyA8PCBkZWxpbVsxXSA8PCAnPCcgPDwgc2l6ZSA8PCAnPic7Cn0KCiNkZWZpbmUgT1VUUFVUX1RXT19BUkdfQ09OVEFJTkVSKFNlcXVlbmNlKSBcCnRlbXBsYXRlPGNsYXNzIFQxLCBjbGFzcyBUMj4gXApzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZzLCBTZXF1ZW5jZTxUMSwgVDI+IGNvbnN0ICZzZXEpIHsgXAogIFByaW50U2VxdWVuY2UocywgIltdIiwgc2VxLmJlZ2luKCksIHNlcS5lbmQoKSk7IFwKICByZXR1cm4gczsgXAp9CgpPVVRQVVRfVFdPX0FSR19DT05UQUlORVIoc3RkOjp2ZWN0b3IpCk9VVFBVVF9UV09fQVJHX0NPTlRBSU5FUihzdGQ6OmRlcXVlKQpPVVRQVVRfVFdPX0FSR19DT05UQUlORVIoc3RkOjpsaXN0KQovLyBvdGhlciB0eXBlcwojdW5kZWYgT1VUUFVUX1RXT19BUkdfQ09OVEFJTkVSCgp0ZW1wbGF0ZTxjbGFzcyBGaXJzdCwgY2xhc3MgU2Vjb25kPgpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZzLCBzdGQ6OnBhaXI8Rmlyc3QsIFNlY29uZD4gY29uc3QgJnApIHsgXAogIHMgPDwgIigiIDw8IHAuZmlyc3QgPDwgIiwgIiA8PCBwLnNlY29uZCA8PCAiKSI7CiAgcmV0dXJuIHM7Cn0KCn0KCnRlbXBsYXRlPGNsYXNzIFQ+CnN0ZDo6c3RyaW5nIEFzU3RyaW5nKFQgY29uc3QgJnYpIHsKICB1c2luZyBuYW1lc3BhY2UgbWFrZV9zdXJlX3RvX3B1dF90aGVzZV9vdmVybG9hZHNfaW5fYV9uYW1lc3BhY2U7CiAgc3RkOjpvc3RyaW5nc3RyZWFtIHNzOwogIHNzIDw8IHY7CiAgcmV0dXJuIHNzLnN0cigpOwp9CgppbnQgbWFpbigpIHsKICB1c2luZyBuYW1lc3BhY2Ugc3RkOwogIHZlY3RvcjxpbnQ+IHY7CiAgdi5wdXNoX2JhY2soMSk7CiAgdi5wdXNoX2JhY2soMik7CiAgc3RkOjpjb3V0IDw8ICJ2ID0gIiA8PCBBc1N0cmluZyh2KSA8PCAnXG4nOwoKICB2ZWN0b3I8dmVjdG9yPGludD4gPiBtOwogIG0ucHVzaF9iYWNrKHYpOwogIG0ucHVzaF9iYWNrKHYpOwogIHN0ZDo6Y291dCA8PCAibSA9ICIgPDwgQXNTdHJpbmcobSkgPDwgJ1xuJzsKCiAgcmV0dXJuIDA7Cn0=
-
upload with new input
-
result: Success time: 0s memory: 2864 kB returned value: 0
v = [1, 2]<2> m = [[1, 2]<2>, [1, 2]<2>]<2>


