vector是序列容器,内存分配时占用连续空间,因为采用的是随机迭代器,所以得到某一位置的值非常快
但是插入和删除比较慢,因为涉及到大块内存的赋值粘贴.
list也是容器,但是内存分配是零散的,采用的是双向迭代器,得到某一位置的值并不快,但插入和删除
效率很高.
map底层采用的是树型结构,多数使用平衡二叉树实现,查找某一值是常数时间,遍历起来效果也不错,
只是每次插入值的时候,会重新构成底层的平衡二叉树,效率有一定影响.
123.cpp //
#include "stdafx.h"
#include <list>
#include <iostream>
using namespace std ;
class Data
{
public:
int length;
int data[3];
};
int main()
{
Data data;
data.data[0] = 0;
data.data[1] = 1;
data.data[2] = 2;
data.length = 3;
Data newData;
newData.data[0] = 3;
newData.data[1] = 4;
newData.data[2] = 5;
newData.length = 8;
list<Data> dataArray;
list<Data>::iterator array;
dataArray.insert(dataArray.end(),data);
dataArray.insert(dataArray.end(), newData);
Data m_bData;
for(array = dataArray.begin(); array != dataArray.end(); ++array)
{
m_bData = *array;
cout<<m_bData.length<<endl;
}
list<int> nArray;
list<int>::iterator i;
nArray.insert(nArray.end(), 3);
nArray.insert(nArray.end(), 5);
for(i = nArray.begin(); i != nArray.end(); ++i)
{
cout<<*i<<endl;
}
return 1;
}
output///
3
8
3
5