在没有位置的数组中添加一个元素
add an element in an array without position
我的问题是我想添加一个元素而不询问用户其元素。我只是想添加一个元素,当我打印所有元素时,包括添加的元素也打印出来,而不是先问它的位置和所有。
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;
如果想要一个类似数组的容器,在插入项时动态调整大小,可以使用std::vector。要在固定大小的数组中自己实现类似的东西,您将需要做簿记。跟踪你当前的插入位置,这样你就知道哪些元素已经被使用了,哪些是空闲的。
同样,如果你想在前面插入,使用链表。或者使用在末尾添加的数组,这样元素以相反的顺序存储。要打印它们,按反向顺序遍历数组(从pos
到0
)
重新排列每个元素以插入新的第一个元素是缓慢的,在通常情况下这样做是一个糟糕的设计。
相关文章:
- lower_bound()返回最后一个元素
- 使用std::transform将一个范围的元素添加到另一个范围中
- 我想访问std::unique_ptr中的一个特定元素
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- 使用运算符 [] 引用 std::vector 上最后一个元素时出现问题<>
- 删除映射和分割错误中的一个过去结束元素
- Lower_bound不适用于具有 3 个元素的向量的最后一个元素
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 检查 2D 网格的某个元素是否与另一个元素共享对角线、水平线或垂直线
- 如何创建一个所有行大小不同的 2D 数组,并且用户将指定每行将有多少个元素?
- 仅显示链表的最后一个元素
- 为什么在 std::map 上移动无法将元素从一个映射移动到另一个映射
- 查找最小的下一个更大的元素
- push_back通过自行创建的对象获取最后一个元素的向量
- 使用 map.end() 访问 map 的最后一个元素
- 如何知道地图中的最后一个元素是否被删除?
- 选择一个元素而不是一个对象的数组的原因
- std::矢量保存 只推送最后一个元素
- 为什么这个选择排序算法仍然切换一个元素,当它已经是其他元素中最小的元素时?
- 动态分配列表 - 创建一个函数,用于删除所有包含偶数值的元素