如果是C, 先使用malloc分配一块内存做为数组,如果需要存储的数据量过大时,使用realloc扩大该块内存。
求一个C数组的长度必须知道:
1. 数组大小
2. 数组单个元素大小
如果所谓的“未知数组”不具备上述的两个因素,就无法求得其长度。
补充:
对string求长度,例子:
string str = "abc";
cout << str.length(); -> 结果为:3
cin返回的是一个istream对象,不能用于结束输入的判断。
你可以使用ctrl+Z做为结束输入的标志,要这样写:
int i = 0;
int r;
while (true) {
cin >> r;
if (cin.eof())
break;
i++;
}
cout << i;
另外,虚机团上产品团购,超级便宜
如果是C, 先使用malloc分配一块内存做为数组,如果需要存储的数据量过大时,使用realloc扩大该块内存。
求一个C数组的长度必须知道:
1. 数组大小
2. 数组单个元素大小
如果所谓的“未知数组”不具备上述的两个因素,就无法求得其长度。
补充:
对string求长度,例子:
string str = "abc";
cout << str.length(); -> 结果为:3
cin返回的是一个istream对象,不能用于结束输入的判断。
你可以使用ctrl+Z做为结束输入的标志,要这样写:
int i = 0;
int r;
while (true) {
cin >> r;
if (cin.eof())
break;
i++;
}
cout << i;
C/C++的数组因为是在栈中分配内存,所以在定义时必须指定一个确切的长度。如果不知道长度怎么办呢?就在堆中分配吧!
C++:
int* a = new int[length];
C:
int* a = (int*) malloc(length * sizeof(int));
length可以是一个变量,即在程序运行前并不知道length的值。但用完一定要手动释放内存,C/C++并不是java。
C++:
delete [] a;
C:
free(a);
用vector容器吧!或者你可以试下用下面的例子的方法:
例如:
#include
main()
{ int i=0;
vector
for(;i++)
{
v.push_back(i);//用for语句把元素一个一个存入vector中
}
/*v.clear() 作用是对存入的数据清空*/
}
for(i=0;i
cout<
cont<
设计一个链表就可以。