00001 #include "tMemManager.h"
00002 #include "tLinkedList.h"
00003 #include "tSysTime.h"
00004
00005 #include <iostream>
00006
00007 #define MAX 100
00008
00009 class test3;
00010
00011 test3 *anchor;
00012
00013 class test3:public tListItem<test3>{
00014 public:
00015 test3():tListItem<test3>(::anchor){};
00016 };
00017
00018 test3 a,b,c,d;
00019
00020
00021 class test{
00022 int x;
00023
00024 public:
00025 virtual ~test(){};
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 tMEMMANAGER(test);
00049 };
00050
00051
00052 class test2: public test{
00053 int y;
00054
00055 public:
00056 virtual ~test2(){};
00057
00058 tMEMMANAGER(test2);
00059 };
00060
00061
00062
00063 class A{
00064 public:
00065 int x;
00066
00067 A(int X):x(X){}
00068 };
00069
00070 class B:virtual public A{
00071 public:
00072 B():A(1){}
00073 };
00074
00075 class C:public B{
00076 public:
00077 C():A(2){}
00078 };
00079
00080 #define LEN 100000
00081 #define ELEM 3
00082
00083 void test_max_a(){
00084 float x[LEN][ELEM];
00085 int i,j;
00086
00087 for (i=LEN-1; i>=0; i--)
00088 {
00089 x[i][0] = 100;
00090 x[i][1] = 150-i;
00091 x[i][2] = 75+i;
00092 }
00093
00094 for (int k=99; k>=0; k--)
00095 for (i=LEN-1; i>=0; i--)
00096 {
00097 float max = -10000;
00098 float min = 10000;
00099
00100 for (j=ELEM; j>=0; j--)
00101 {
00102 float y = x[i][j];
00103 float ymi = min-y;
00104 float yma = y-max;
00105
00106 min -= (ymi + fabs(ymi))*.5;
00107 max += (yma + fabs(yma))*.5;
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119 }
00120 }
00121 }
00122
00123 void test_max_b(){
00124 float x[LEN][ELEM];
00125 int i,j;
00126
00127 for (i=LEN-1; i>=0; i--)
00128 {
00129 x[i][0] = 100;
00130 x[i][1] = 150-i;
00131 x[i][2] = 75+i;
00132 }
00133
00134 for (int k=99; k>=0; k--)
00135 for (i=LEN-1; i>=0; i--)
00136 {
00137 float max = -10000;
00138 float min = 10000;
00139
00140 for (j=ELEM; j>=0; j--)
00141 {
00142 min = (min > x[i][j] ? x[i][j] : min);
00143 max = (max < x[i][j] ? x[i][j] : max);
00144 }
00145 }
00146 }
00147
00148
00149
00150 int main(){
00151 float ta = tSysTimeFloat();
00152 test_max_b();
00153 float tb = tSysTimeFloat();
00154 test_max_a();
00155 float tc = tSysTimeFloat();
00156
00157 std::cout << tb-ta << " , " << tc-tb << '\n';
00158
00159
00160
00161 C c;
00162 std::cout << c.x << '\n';
00163
00164 int i;
00165 test *x[MAX];
00166
00167 test *y=new test2;
00168 delete y;
00169
00170 for(i=0;i<MAX;i++)
00171 x[i]=new test;
00172
00173 for (i=0;i<MAX;i++)
00174 if (i%4 !=0){
00175 delete x[i];
00176 x[i]=NULL;
00177 }
00178
00179 for(i=0;i<MAX;i++)
00180 if (!x[i])
00181 x[i]=new test;
00182
00183 for(i=0;i<MAX;i++)
00184 delete x[i];
00185
00186 return 0;
00187 }
00188
00189
00190
00191
00192