C++标准库容器


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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值