fork(3) download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. int swapCount = 0;
  6.  
  7. class X
  8. {
  9. public:
  10. int x;
  11.  
  12. X( int val ): x( val ) {};
  13.  
  14. friend void swap( X &a, X &b )
  15. {
  16. using std::swap;
  17. swap( a.x, b.x );
  18. swapCount++;
  19. std::cout << "a.x = " << a.x << ", b.x = " << b.x << std::endl;
  20. }
  21. };
  22.  
  23. void f(int n) {
  24. std::vector<X> vec;
  25. for ( int i = 0; i < n; i++ )
  26. vec.push_back( X( i ) );
  27.  
  28. swapCount = 0;
  29. std::stable_sort( vec.begin(), vec.end(),
  30. [] ( const X &a, const X &b ) -> bool { return (a.x) < (b.x); } );
  31. std::cout << n << ") " << "swapCount=" << swapCount << "\n";
  32. }
  33.  
  34. int main() {
  35. for(int n=1; n<100; ++n) f(n);
  36. return 0;
  37. }
Success #stdin #stdout 0s 16056KB
stdin
Standard input is empty
stdout
1) swapCount=0
2) swapCount=0
3) swapCount=0
4) swapCount=0
5) swapCount=0
6) swapCount=0
7) swapCount=0
8) swapCount=0
9) swapCount=0
10) swapCount=0
11) swapCount=0
12) swapCount=0
13) swapCount=0
14) swapCount=0
15) swapCount=0
16) swapCount=0
17) swapCount=0
18) swapCount=0
19) swapCount=0
20) swapCount=0
21) swapCount=0
22) swapCount=0
23) swapCount=0
24) swapCount=0
25) swapCount=0
26) swapCount=0
27) swapCount=0
28) swapCount=0
29) swapCount=0
30) swapCount=0
31) swapCount=0
32) swapCount=0
33) swapCount=0
34) swapCount=0
35) swapCount=0
36) swapCount=0
37) swapCount=0
38) swapCount=0
39) swapCount=0
40) swapCount=0
41) swapCount=0
42) swapCount=0
43) swapCount=0
44) swapCount=0
45) swapCount=0
46) swapCount=0
47) swapCount=0
48) swapCount=0
49) swapCount=0
50) swapCount=0
51) swapCount=0
52) swapCount=0
53) swapCount=0
54) swapCount=0
55) swapCount=0
56) swapCount=0
57) swapCount=0
58) swapCount=0
59) swapCount=0
60) swapCount=0
61) swapCount=0
62) swapCount=0
63) swapCount=0
64) swapCount=0
65) swapCount=0
66) swapCount=0
67) swapCount=0
68) swapCount=0
69) swapCount=0
70) swapCount=0
71) swapCount=0
72) swapCount=0
73) swapCount=0
74) swapCount=0
75) swapCount=0
76) swapCount=0
77) swapCount=0
78) swapCount=0
79) swapCount=0
80) swapCount=0
81) swapCount=0
82) swapCount=0
83) swapCount=0
84) swapCount=0
85) swapCount=0
86) swapCount=0
87) swapCount=0
88) swapCount=0
89) swapCount=0
90) swapCount=0
91) swapCount=0
92) swapCount=0
93) swapCount=0
94) swapCount=0
95) swapCount=0
96) swapCount=0
97) swapCount=0
98) swapCount=0
99) swapCount=0