c++ - 如何将值插入数组的中间

标签 c++

<分区>

所以我有一个像这样的数组 [1,2,3,4,5,6,7,8,9] 这个数组的最大值是 15 个值。如果我调用数字索引,我想要做的是插入一个 int。所以说我调用 5,它是索引 4 从那里一切都转移了,新值被插入 [,1,2,3,4,0,5,6,7,8,9] 如何我会这样做吗?

我试过了,但我似乎做错了,它覆盖了值。 诠释 xxx;

        cin >> num;
        if (num >= 0 && num <= 15) {
            for (int i = num; i < MAX; i++) {
                values[i] = values[i+1];
                cout << values[i+1] << endl;
            }
            viewVal(values, position);
            cout << endl << endl;
        }

最佳答案

问题是 values[i] = values[i+1]; 将一个值向左移动了一步(索引 4 现在具有索引 6 的值),但是您想要将所有值向右移动一步。因此,您必须撤消分配。

这会产生一个问题,即一旦您向右移动了一个值,右侧位置上的先前值就会丢失。为了防止这种情况,您可以从数组的后面开始。

关于c++ - 如何将值插入数组的中间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19294049/

相关文章:

C++ 特征 : Passing a column of a matrix into a function by reference

c++ - Node js 原生模块,从 Objective-C block 事件监听器触发回调不起作用

c++ - 为什么 unordered_multimap::equal_range 平均大小写是常量?

c++ - 在 RedHat 机器上执行 C++ 代码之前等待解压缩完成

C++17 支持 Eclipse Neon

c++ - std::bind1st 能否用于将 void (*)(void*,int) 转换为 void (*)(int)?

c++ - <T::* int> 是什么意思?

c++ - 带符号的 16 位 SSE 平均值

c++ - Os X Yosemite Qt 拖放文件名错误

c++ - 损坏的双链表?