新方式Vector---扩展容量时无需再复制数据
来源:互联网 发布:特种加工简单图案编程 编辑:程序博客网 时间:2024/06/15 19:21
template<classT>class Node{
private:
intxiabiao; //指向当前位置的下一个位置
T dataarray[50];
public:
Node(){
xiabiao=0;
}
voidset(Titem){
if(xiabiao==50){
xiabiao=0;
throwSpecialException(); //抛出了个类
}
dataarray[xiabiao]=item;
xiabiao++;
}
T get(intindex){
returndataarray[index];
}
voidupdate(intindex,Tdata){
dataarray[index]=data;
}
};
class SpecialException{};
template<classT>class NewVector{
private:
Node<T>*shuzuchi[10]; //指针池
intshuzhu;
public:
NewVector(){
shuzhu= 0;
shuzuchi[shuzhu]=newNode<T>;
}
voidset(Titem){
try{
shuzuchi[shuzhu]->set(item);
}catch(SpecialException){
shuzuchi[++shuzhu]=newNode<T>;
shuzuchi[shuzhu]->set(item);
}
}
T get(intindex){
returnshuzuchi[index/50]->get(index%50);
}
voidupdate(intindex,Tdata){
shuzuchi[index/50]->update(index%50,data);
}
//不提供删除操作,因为删除操作太复杂了。可以进行数据的覆盖
// Tdeletedata(int index){
// intmid=get( index );
// update(index , 0 );
// returnmid;
// }
};
- 新方式Vector---扩展容量时无需再复制数据
- c++ vector的容量增长方式
- ArcGIS10体验新方式,无需安装,在线体验
- 导入与导出数据 大容量复制程序(bcp)
- vector--修正过剩容量
- vector缩减容量
- ACM学习历程7——Vector向量容量扩展机制
- CentOS 添加新硬件,扩展空间而无需重启虚拟机
- C#中的扩展方法(向已有类添加方法,但无需创建新的派生类型)
- vector&String的适当容量
- vector的容量进行缩减
- vector&String的适当容量
- 复制DataTable数据到新DataTable
- CentOS通过添加物理磁盘的方式为lv-root扩展容量
- Virtualbox扩展ubuntu容量空间
- 扩展VirtualBox虚拟机磁盘容量
- Virtualbox扩展ubuntu容量空间
- 扩展undo表空间容量
- 学习笔记_linux——linux基础
- Eclipse配置Tomcat
- ios4.x下CG绘图颜色数组
- PHP 图片的二进制存取 (Mysql)
- 《Java解惑》系列——01表达式之谜——谜题01:奇偶性
- 新方式Vector---扩展容量时无需再复制数据
- mysql 获取上个月,这个月的第一天或最后一天
- 深入浅出 Cocoa 之 Core Data- 框架详解
- 查看局域网内其他计算机的mac地址和ip
- jquery 取出列表中的选择项目
- 数学—杭电1418 抱歉
- mysql创建数据库账号
- 解决dynamips在X64WIN下找不到telnet.exe的问题
- 创建含有category的静态库,selector not recognized的解决方案