0001 /****************************************************************************************** 0002 * Test of queue 0003 ******************************************************************************************/ 0004 #include "queue_test.h" 0005 0006 int testID = 0; //测试编号 0007 0008 template <typename T> void testQueue(Rank n) { 0009 Queue<T> Q; 0010 printf("\n ==== Test %2d. Growing queue\n", testID++); 0011 while (Q.size() < n) { 0012 (Q.empty() || (30 < dice((Rank) 100))) ? 0013 Q.enqueue(dice(n*2)) : //70%入队 0014 Q.dequeue(); //30%出队 0015 print(Q); 0016 } 0017 printf("\n ==== Test %2d. Shrinking queue\n", testID++); 0018 while (!Q.empty()) { 0019 (70 < dice((Rank) 100)) ? 0020 Q.enqueue(dice(2*n)) : //30%入队 0021 Q.dequeue(); //70%出队 0022 print(Q); 0023 } 0024 } 0025 0026 int main(int argc, char* argv[]) { 0027 if (2 > argc) { printf("Usage: %s <size of test>\a\a\n", argv[0]); return 1; } 0028 srand(31415926); //srand((uint32_t) time(nullptr)); //随机种子 0029 testQueue<int>(atoi(argv[1])); //元素类型可以在这里任意选择 0030 return 0; 0031 }