STL中的container各有专长,最常用的是std::vector,可以完全取代array,第二常用的是std::list。std::vector的优点在于non-sequential access超快,新增数据于数据后端超快,但insert和erase任意资料则相当缓慢;std::list则是insert和erase速度超快,但non-sequential access超慢,此范例以实际时间比较vector和list间的优缺点。
1
/*
2
(C) OOMusou 2006 http://oomusou.cnblogs.com
3![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
4
Filename : VectorVsList.cpp
5
Compiler : Visual C++ 8.0
6
Description : Demo the performance difference between std::vector and std::list
7
*/
8
#include <iostream>
9
#include <ctime>
10
#include <vector>
11
#include <list>
12![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
13
// Add to Vector at end
14
void addToVectorAtEnd();
15
// Add to List at end
16
void addToListAtEnd();
17
// Calculate time for adding to end
18
void addToEnd();
19![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
20
// Add to Vector anywhere
21
void addToVectorAnywhere();
22
// Add to List anywhere
23
void addToListAnywhere();
24
// Calculate time for adding anywhere
25
void addAnywhere();
26![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
27
// Remove from Vector anywhere
28
void removeFromVectorAnywhere();
29
// Remove from List anywhere
30
void removeFromListAnywhere();
31
// Calculate time for removing anywhere
32
void removeAnywhere();
33![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
34
// Non-sequential access to Vector
35
void nonSequentialAccessToVector();
36
// Non-sequential access to List
37
void nonSequentialAccessToList();
38
// Caculate time for non-sequential access to
39
void nonSequentialAccess();
40![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
41
std::vector<int> vector1;
42
std::list<int> list1;
43![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
44
int main() {
45
// Calculate time for adding to end
46
addToEnd();
47![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
48
// Calculate time for adding anywhere
49
addAnywhere();
50![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
51
// Calculate time for removing anywhere
52
removeAnywhere();
53![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
54
// Caculate time for non-sequential access to
55
nonSequentialAccess();
56
}
57![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
58
// Add to Vector at end
59
void addToVectorAtEnd() {
60
for(int i=0; i != 1000000; ++i) {
61
vector1.push_back(i);
62
}
63
}
64![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
65
// Add to List at end
66
void addToListAtEnd() {
67
for(int i=0; i != 1000000; ++i) {
68
list1.push_back(i);
69
}
70
}
71![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
72
// Calculate time for adding to end
73
void addToEnd() {
74
clock_t addToVectorAtEndClock = clock();
75
addToVectorAtEnd();
76
addToVectorAtEndClock = clock() - addToVectorAtEndClock;
77![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
78
std::cout << "Vector Insertion at the end Process time:" << (double)addToVectorAtEndClock/CLOCKS_PER_SEC << " sec" << std::endl;
79![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
80
clock_t addToListAtEndClock = clock();
81
addToListAtEnd();
82
addToListAtEndClock = clock() - addToListAtEndClock;
83![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
84
std::cout << "List Insertion at the end Process time:" << (double)addToListAtEndClock/CLOCKS_PER_SEC << " sec" << std::endl;
85![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
86
if (addToVectorAtEndClock < addToListAtEndClock) {
87
std::cout << "Insertion at the end : Vector wins" << std::endl;
88
}
89
else {
90
std::cout << "Insertion at the end : List wins" << std::endl;
91
}
92
}
93![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
94
// Add to Vector anywhere
95
void addToVectorAnywhere() {
96
// Add to 50000th
97
std::vector<int>::iterator iter = vector1.begin();
98![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
99
for(int i = 0; i <= 500; ++i) {
100
++iter;
101
iter = vector1.insert(iter,i);
102
}
103
}
104![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
105
// Add to List anywhere
106
void addToListAnywhere() {
107
// Add to 50000th
108
std::list<int>::iterator iter = list1.begin();
109![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
110
for(int i = 0; i != 500; ++i) {
111
++iter;
112
iter = list1.insert(iter,i);
113
}
114
}
115![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
116
// Calculate time for adding anywhere
117
void addAnywhere() {
118
clock_t addToVectorAnywhereClock = clock();
119
addToVectorAnywhere();
120
addToVectorAnywhereClock = clock() - addToVectorAnywhereClock;
121![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
122
std::cout << "Vector Insertion anywhere Process time:" << (double)addToVectorAnywhereClock/CLOCKS_PER_SEC << " sec" << std::endl;
123![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
124
clock_t addToListAnywhereClock = clock();
125
addToListAnywhere();
126
addToListAnywhereClock = clock() - addToListAnywhereClock;
127![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
128
std::cout << "List Insertion anywhere Process time:" << (double)addToListAnywhereClock/CLOCKS_PER_SEC << " sec" << std::endl;
129![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
130
if (addToVectorAnywhereClock < addToListAnywhereClock) {
131
std::cout << "Insertion anywhere : Vector wins" << std::endl;
132
}
133
else {
134
std::cout << "Insertion anywhere : List wins" << std::endl;
135
}
136
}
137![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
138
// Remove from Vector anywhere
139
void removeFromVectorAnywhere() {
140
std::vector<int>::iterator iter = vector1.begin();
141![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
142
for(int i = 0; i != 500; ++i) {
143
++iter;
144
iter = vector1.erase(iter);
145
}
146
}
147![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
148
// Remove from List anywhere
149
void removeFromListAnywhere() {
150
std::list<int>::iterator iter = list1.begin();
151![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
152
for(int i = 0; i != 500; ++i) {
153
++iter;
154
iter = list1.erase(iter);
155
}
156
}
157![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
158
// Calculate time for removing anywhere
159
void removeAnywhere() {
160
clock_t removeFromVectorAnywhereClock = clock();
161
removeFromVectorAnywhere();
162
removeFromVectorAnywhereClock = clock() - removeFromVectorAnywhereClock;
163![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
164
std::cout << "Vector deletion anywhere Process time:" << (double)removeFromVectorAnywhereClock/CLOCKS_PER_SEC << " sec" << std::endl;
165![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
166
clock_t removeFromListAnywhereClock = clock();
167
removeFromListAnywhere();
168
removeFromListAnywhereClock = clock() - removeFromListAnywhereClock;
169![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
170
std::cout << "List deletion anywhere Process time:" << (double)removeFromListAnywhereClock/CLOCKS_PER_SEC << " sec" << std::endl;
171![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
172
if (removeFromVectorAnywhereClock < removeFromListAnywhereClock) {
173
std::cout << "Deletion anywhere : Vector wins" << std::endl;
174
}
175
else {
176
std::cout << "Deletion anywhere : List wins" << std::endl;
177
}
178
}
179![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
180
// Non-sequential access to Vector
181
void nonSequentialAccessToVector() {
182
for(int i = 0; i != 10000; ++i) {
183
int m = vector1.at(i);
184
}
185
}
186![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
187
// Non-sequential access to List
188
void nonSequentialAccessToList() {
189
for(int i = 0; i != 10000; ++i) {
190
std::list<int>::const_iterator iter = list1.begin();
191
for(int k = 0; k <= i; ++k) {
192
++iter;
193
}
194![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
195
int m = (*iter);
196
}
197
}
198![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
199
// Caculate time for non-sequential access to
200
void nonSequentialAccess() {
201
clock_t nonSequentialAccessToVectorClock = clock();
202
nonSequentialAccessToVector();
203
nonSequentialAccessToVectorClock = clock() - nonSequentialAccessToVectorClock;
204![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
205
std::cout << "Vector non-sequential access Process time:" << (double)nonSequentialAccessToVectorClock/CLOCKS_PER_SEC << " sec" << std::endl;
206![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
207
clock_t nonSequentialAccessToListClock = clock();
208
nonSequentialAccessToList();
209
nonSequentialAccessToListClock = clock() - nonSequentialAccessToListClock;
210![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
211
std::cout << "List non-sequential access Process time:" << (double)nonSequentialAccessToListClock/CLOCKS_PER_SEC << " sec" << std::endl;
212![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
213
if (nonSequentialAccessToVectorClock < nonSequentialAccessToListClock) {
214
std::cout << "Non-sequential : Vector wins" << std::endl;
215
}
216
else {
217
std::cout << "Non-sequential : List wins" << std::endl;
218
}
219
}
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
3
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
4
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
5
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
6
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
7
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
8
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
9
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
10
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
11
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
12
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
13
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
14
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
15
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
16
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
17
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
18
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
19
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
20
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
21
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
22
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
23
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
24
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
25
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
26
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
27
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
28
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
29
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
30
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
31
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
32
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
33
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
34
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
35
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
36
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
37
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
38
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
39
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
40
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
41
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
42
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
43
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
44
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
45
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
46
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
47
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
48
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
49
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
50
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
51
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
52
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
53
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
54
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
55
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
56
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
57
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
58
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
59
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
60
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
61
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
62
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
63
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
64
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
65
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
66
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
67
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
68
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
69
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
70
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
71
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
72
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
73
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
74
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
75
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
76
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
77
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
78
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
79
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
80
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
81
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
82
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
83
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
84
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
85
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
86
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
87
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
88
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
89
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
90
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
91
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
92
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
93
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
94
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
95
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
96
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
97
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
98
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
99
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
100
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
101
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
102
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
103
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
104
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
105
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
106
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
107
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
108
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
109
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
110
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
111
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
112
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
113
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
114
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
115
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
116
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
117
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
118
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
119
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
120
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
121
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
122
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
123
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
124
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
125
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
126
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
127
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
128
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
129
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
130
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
131
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
132
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
133
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
134
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
135
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
136
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
137
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
138
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
139
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
140
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
141
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
142
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
143
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
144
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
145
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
146
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
147
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
148
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
149
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
150
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
151
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
152
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
153
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
154
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
155
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
156
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
157
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
158
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
159
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
160
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
161
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
162
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
163
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
164
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
165
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
166
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
167
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
168
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
169
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
170
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
171
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
172
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
173
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
174
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
175
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
176
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
177
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
178
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
179
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
180
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
181
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
182
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
183
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
184
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
185
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
186
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
187
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
188
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
189
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
190
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
191
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
192
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
193
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
194
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
195
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
196
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
197
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
198
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
199
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
200
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
201
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
202
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
203
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
204
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
205
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
206
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
207
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
208
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
209
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
210
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
211
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
212
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
213
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
214
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
215
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
216
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
217
![](http://writeblog.csdn.net/Images/OutliningIndicators/InBlock.gif)
218
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
219
![](http://writeblog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
执行结果
(Debug mode)
1
Vector Insertion at the end Process time:
3.094
sec
2
List Insertion at the end Process time:
10.205
sec
3
Insertion at the end : Vector wins
4
Vector Insertion anywhere Process time:
5.548
sec
5
List Insertion anywhere Process time:
0.01
sec
6
Insertion anywhere : List wins
7
Vector deletion anywhere Process time:
4.756
sec
8
List deletion anywhere Process time:
0.011
sec
9
Deletion anywhere : List wins
10
Vector non
-
sequential access Process time:
0.11
sec
11
List non
-
sequential access Process time:
21.12
sec
12
Non
-
sequential : Vector wins
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
2
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
3
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
4
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
5
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
6
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
7
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
8
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
9
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
10
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
11
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
12
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
(Release Mode)
1
Vector Insertion at the end Process time:
0.06
sec
2
List Insertion at the end Process time:
0.39
sec
3
Insertion at the end : Vector wins
4
Vector Insertion anywhere Process time:
4.757
sec
5
List Insertion anywhere Process time:
0
sec
6
Insertion anywhere : List wins
7
Vector deletion anywhere Process time:
4.717
sec
8
List deletion anywhere Process time:
0
sec
9
Deletion anywhere : List wins
10
Vector non
-
sequential access Process time:
0
sec
11
List non
-
sequential access Process time:
0.491
sec
12
Non
-
sequential : Vector wins
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
2
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
3
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
4
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
5
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
6
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
7
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
8
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
9
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
10
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
11
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
12
![](http://writeblog.csdn.net/Images/OutliningIndicators/None.gif)
可见经过compiler优化后,速度差异非常明显。
转自:http://www.cnblogs.com/oomusou/archive/2006/11/09/554737.html