- #include <bits/stdc++.h> 
- using namespace std; 
- using namespace chrono; 
-   
- constexpr int SIZE = 100000; 
- constexpr int TIMES = 10000; 
-   
- struct Type { 
- 	int r, g, b; 
- }; 
-   
- int main() { 
- 	vector<Type> v1( SIZE ); 
- 	vector<Type> v2( v1 ); 
-   
- 	for( int i = TIMES; i--; ) { 
- 		copy( v1.begin(), v1.end(), v2.begin() ); 
- 	} 
-   
- 	auto t2 = steady_clock::now(); 
- 	for( int i = TIMES; i--; ) { 
- 		copy( v1.begin(), v1.end(), v2.begin() ); 
- 	} 
- 	cout << "std::copy: "; 
- 	cout << duration_cast<milliseconds>( steady_clock::now() - t2 ).count() << endl; 
-   
- 	auto t1 = steady_clock::now(); 
- 	for( int i = TIMES; i--; ) { 
- 		memcpy( v2.data(), v1.data(), v1.size() * sizeof( Type ) ); 
- 	} 
- 	cout << "memcpy: "; 
- 	cout << duration_cast<milliseconds>( steady_clock::now() - t1 ).count() << endl; 
- } 
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIG5hbWVzcGFjZSBjaHJvbm87Cgpjb25zdGV4cHIgaW50IFNJWkUgPSAxMDAwMDA7CmNvbnN0ZXhwciBpbnQgVElNRVMgPSAxMDAwMDsKCnN0cnVjdCBUeXBlIHsKCWludCByLCBnLCBiOwp9OwoKaW50IG1haW4oKSB7Cgl2ZWN0b3I8VHlwZT4gdjEoIFNJWkUgKTsKCXZlY3RvcjxUeXBlPiB2MiggdjEgKTsKCQoJZm9yKCBpbnQgaSA9IFRJTUVTOyBpLS07ICkgewoJCWNvcHkoIHYxLmJlZ2luKCksIHYxLmVuZCgpLCB2Mi5iZWdpbigpICk7Cgl9CgkKCWF1dG8gdDIgPSBzdGVhZHlfY2xvY2s6Om5vdygpOwoJZm9yKCBpbnQgaSA9IFRJTUVTOyBpLS07ICkgewoJCWNvcHkoIHYxLmJlZ2luKCksIHYxLmVuZCgpLCB2Mi5iZWdpbigpICk7Cgl9Cgljb3V0IDw8ICJzdGQ6OmNvcHk6ICI7Cgljb3V0IDw8IGR1cmF0aW9uX2Nhc3Q8bWlsbGlzZWNvbmRzPiggc3RlYWR5X2Nsb2NrOjpub3coKSAtIHQyICkuY291bnQoKSA8PCBlbmRsOwoJCglhdXRvIHQxID0gc3RlYWR5X2Nsb2NrOjpub3coKTsKCWZvciggaW50IGkgPSBUSU1FUzsgaS0tOyApIHsKCQltZW1jcHkoIHYyLmRhdGEoKSwgdjEuZGF0YSgpLCB2MS5zaXplKCkgKiBzaXplb2YoIFR5cGUgKSApOwoJfQoJY291dCA8PCAibWVtY3B5OiAiOwoJY291dCA8PCBkdXJhdGlvbl9jYXN0PG1pbGxpc2Vjb25kcz4oIHN0ZWFkeV9jbG9jazo6bm93KCkgLSB0MSApLmNvdW50KCkgPDwgZW5kbDsKfQ==