如何可以实现动态的数组呢?
想输入一个数 n
使数组的大小为 n 并初始为 0
小弟实现不了
请帮帮小弟!!
问题点数:0、回复次数:9Top
1 楼bigdaddy123(阿烂)回复于 2005-04-03 23:28:44 得分 0
帮帮小弟啊!!Top
2 楼chunhai12(小海)回复于 2005-04-03 23:33:33 得分 0
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int *ia = new int[n]();
//…………
delete[] ia;
return 0;
}Top
3 楼xxxdg(学习中)回复于 2005-04-03 23:34:26 得分 0
这个实现不了的话,也不敢用模板了,呵呵
char * MallocArray(int n)
{
char * pArray = new int [n];
memset(pArray,0,n);
return pArray;
}
void FreeArray(char * pArray)
{
delete [] pArray;
}Top
4 楼leogigi()回复于 2005-04-03 23:39:15 得分 0
数组还可以追加分配!~~~~Top
5 楼antter(JiangMiao)回复于 2005-04-04 07:01:46 得分 0
template<class T>
class dynarray
{
T* m_data;
public:
dynarray(int n) { m_data = new T[n];memset(m_data,0,n*sizeof(T));}
~dynarray() {delete[] m_data; }
};
int main(int argc, char* argv[])
{
dynarray<char> test(8);
return 0;
}Top
6 楼xjp6688(大平/要做必须最好)回复于 2005-04-04 07:42:15 得分 0
注意分配和释放Top
7 楼healer_kx(甘草(楼主揭贴吧,我们这些上班灌水的也不容易))回复于 2005-04-04 08:10:43 得分 0
boost::array<T>Top
8 楼pcboyxhy(-273.15℃)回复于 2005-04-04 08:21:20 得分 0
标准里还可以
int i;
cin>>i;
int data[i];
memset(data, 0, sizeof(int)*i);Top
9 楼bluejugar(2046,那年我64.)回复于 2005-04-04 09:00:42 得分 0
#include <iostream>
template<typename T = T(),size_t N = 0>
class Dynamic_Array2D
{
public:
Dynamic_Array2D()
{
for(int i = 0; i < N; ++i)
{
m_Container_[i] = T();
}
}
T& operator[](size_t n)
{
return m_Container_[n];
}
private:
T m_Container_[N];
};
int main()
{
using namespace std;
Dynamic_Array2D<int,20> obj;
cout<<obj[2]<<endl;
return 0;
}Top




