注册 登录
编程论坛 C++教室

做一下这个题好不好

油条 发布于 2007-07-03 12:36, 478 次点击

假定用一维数组 a [ 0:s i z e - 1 ]来存储一组元素。如果有 n个元素,可以把它们存储在a [ 0 ] , . . . , a [ n - 1 ]中。当n超过s i z e时,数组将不足以存储所有元素,必须分配一个更大的数组。类似地,如果元素的数目比 s i z e小很多,我们又可能希望减少数组的大小,以便释放出多余的空间为其他地方所用。试编写一个模板函数 C h a n g e S i z e 1 D把数组a的大小从s i z e变成To S i z e。函数首先应该分配一个新的、大小为 To S i z e的数组,然后把原数组 a中的n个元素复制到新数组 a中,最后释放原数组a所占用的空间。上机测试该函数。

能不能把程序发上来

1 回复
#2
aipb20072007-07-03 13:55
template<typename T>
void change_size(T *&p_arr,size_t size,size_t to_size){
T *t_arr = new T[to_size];
for (size_t i = 0;i < size;++i)
t_arr[i] = p_arr[i];
delete [] p_arr;
p_arr = t_arr;
}
1