在没有位置的数组中添加元素

时间:2015-10-08 18:17:26

标签: c++ arrays insertion

我的问题是我想添加一个元素而不向用户询问它的元素。我只想添加一个元素,当我打印所有元素,包括添加的一个元素,而不是先询问它的位置和所有元素。

int num,pos;
cout<<"Enter another element: ";
cin>>num;
cout<<"Enter position number: ";
cin>>pos;

cout<<endl;


for(int i=po; i>=pos; i--)
    a[i+1]=a[i];

a[pos]=num;
po++;

cout<<"New Array: "<<endl;
for(int i=0; i<po; i++)
    cout<<"Element at position "<<i+1<<" is "<<a[i]<<endl;

1 个答案:

答案 0 :(得分:0)

如果您希望在插入项目时动态调整大小的类似数组的容器,请使用std::vector。要在固定大小的数组中自己实现这样的事情,需要进行簿记。跟踪当前的插入位置,以便了解哪些元素已被使用,哪些元素是免费的。

此外,如果要在前面插入,请使用链接列表。或者使用添加到末尾的数组,因此元素以相反的顺序存储。要打印它们,请以相反的顺序遍历数组(从pos0。)

对每个元素进行混洗以插入新的第一个元素的速度很慢,在常见情况下这样做是一个糟糕的设计。