第十六周项目四:为动态数组扩容

/*


*copyright (c) 2014, 烟台大学计算机学院.


*All rights reserved.


*文件名称:test.cpp 


*作者:陆云杰


*完成日期:2014年12月11日 


*版本号:v1.0


* 


*


*问题描述:为动态数组扩容


*程序输入:数据


*程序输出:数据


*/
#include <iostream>


using namespace std;


int main( )
{
    int num,i,addNum;  //num是小组人数
    cout<<"输入学生人数: ";
    cin>>num;
    int *score = new int[num];
    cout<<"请输入学生成绩: ";
    //输入num名同学的成绩
    for(i=0; i<num; i++)
        cin>>score[i]; //*(score+i)
    cout<<"需要增加多少名学生? ";
    cin>>addNum;   //addNum是需要增加的人数
    //下面的程序完成对数组的扩容,并输入另外的成绩
    cout<<"请输入学生成绩:";
    for(i=num;i<num+addNum;i++)
    {
        cin>>score[i];
    }
    num+=addNum;
    cout<<"现在共有" << num << "名同学,他们的成绩是: "<<endl;
    for(i=0; i<num; i++)
        cout<<score[i]<<"  ";
    cout<<endl;
    delete []score;
    return 0;
}

学习心得:又进步啦!


在Python中,我们可以创建一个名为ArrayList的类,它模拟数组的功能并提供基本的操作,如遍历、追加、获取、插入和删除元素。这里是一个简单的实现: ```python class ArrayList: def __init__(self): self.data = [] # 遍历数组 def traverse(self): print("遍历数组:", self.data) # 追加元素到数组末尾 def append(self, item): self.data.append(item) print(f"追加 {item} 到数组") # 获取指定索引处的元素 def get(self, index): if index < len(self.data): return self.data[index] else: print("索引越界,无法获取元素") return None # 插入元素到指定位置 def insert(self, index, item): if index <= len(self.data): self.data.insert(index, item) print(f"{item} 已经成功插入到索引 {index}") else: print("索引超出范围,无法插入") # 删除指定位置的元素 def delete(self, index): if index < len(self.data): del self.data[index] print(f"已从索引 {index} 删除元素") else: print("索引越界,无法删除元素") # 当数组长度超过一定阈值时,自动扩容 def resize(self): old_size = len(self.data) new_size = max(2 * old_size, 16) # 通常将新大小设置为旧大小的两倍或16(防止频繁扩容) self.data.extend([None] * (new_size - old_size)) print("数组扩容") # 使用示例 my_list = ArrayList() my_list.append(1) my_list.traverse() # 遍历初始状态 my_list.insert(0, 0) my_list.get(0) # 获取第一个元素 my_list.delete(1) my_list.resize() # 扩容操作 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值