C++中怎么重定义数组大小

比如:

我在前面定义: #define Max 100

如果我在后面想重新定义数组的大小,是用户自己输入一个n,把数组的大小变成n,该怎么说明?最好具体点。

最好还能举个例。谢谢。

#include <iostream>
#include <vector>
using namespace std;

int main()
{
//定义了一个空vector<int>对象
vector<int> str;

//动态的添加100个元素,从1-100.
for(vector<int>::size_type i = 0; i != 100; ++i)
str.push_back(i+1);//因为是从0开始的所以让它+1

//用迭代器,输出每个元素.
for(vector<int>::iterator s = str.begin(); s != str.end(); ++s)
cout << *s << endl;

//访问任意的元素.
int a;
const b = -1, c = 100;
cout << "请输入 0 - 99 的元素数 ";
cin >> a;
if(a > b && a < c)
{
cout << "str中第" << a << "个元素的值是" << str[a] << endl;
}
else
{
cout << "请您按要求输入!!!" << endl;
}

//给任意元素赋值.
cout << "请输入 0 - 99 的元素数 ";
cin >> a;
if(a > b && a < c)
{
int f = 0;
cout << "请输入你想要的结果 ";
cin >> f;
str[a] = f;
cout << "第" << a << "个元素的结果现在是: "
<< str[a] << endl;
}
else
{
cout << "请您按要求输入!!!" << endl;
}
system("pause");
return 0;
}
上面是一些用法,自己去想吧!
我也是刚学~~
或许还有更好的方法

参考资料:http://zhidao.baidu.com/question/67730187.html

温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-10-12
int *a;
int n;

cin>>n;

a=new int[n];//新建一个长度为n的整型数组

a[0]=...

...
...
delete[] a;//删除数组a
第2个回答  推荐于2017-10-02

在C++中则可以使用模板 技术定义一个函数,比如:

template <class T>
int getArrayLen(T& array)
{
return (sizeof(array) / sizeof(array[0]));
}

第3个回答  2008-10-12
你那是宏定义啊 就是100用Max代替了。这不是数组啊···如果要重新定义宏的话就想
#undef Max
然后在重新定义一次就行了 啊
第4个回答  2008-10-12
最简单办法就是,new一个新的指定大小的数组,然后把旧的数据复制过去,然后删除旧的数组
相似回答