C++标准库容器

来源:互联网 发布:sql server 2005下载 编辑:程序博客网 时间:2024/05/17 05:50


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

 

原创粉丝点击