Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ insertElement()函数不使用';我不能如愿工作_C++_Arrays_Insert_Position_Element - Fatal编程技术网

C++ insertElement()函数不使用';我不能如愿工作

C++ insertElement()函数不使用';我不能如愿工作,c++,arrays,insert,position,element,C++,Arrays,Insert,Position,Element,我的程序中的insertElement()函数有问题。我打算insertElement做的是从原型中获取索引,并将所有值向右移动一次,包括该索引上的值。因此,如果我有我的数组{1,2,3,4},并且我想在索引“2”处插入值“10”,那么得到的数组将是{1,2,10,3,4} 我知道我必须调整insertElement()函数来解决这个问题,但我不知道从哪里开始,有人能帮我一下吗?这是我的密码: #include <iostream> using namespace std; con

我的程序中的insertElement()函数有问题。我打算insertElement做的是从原型中获取索引,并将所有值向右移动一次,包括该索引上的值。因此,如果我有我的数组{1,2,3,4},并且我想在索引“2”处插入值“10”,那么得到的数组将是{1,2,10,3,4}

我知道我必须调整insertElement()函数来解决这个问题,但我不知道从哪里开始,有人能帮我一下吗?这是我的密码:

#include <iostream>
using namespace std;

const int CAPACITY = 20;

void displayArray(int array[], int numElements)
{
    for (int i = 0; i < numElements; i++)
        cout << array[i] << " ";
    cout << endl;
}

bool insertElement(int array[], int& numberElements, int insertPosition, int insertTarget)
{
    int p = 0;
    int j = 1;
    int arrayPositionFromLast = (numberElements-1);
    if (numberElements>=CAPACITY)
    {
        cout << "Cannot insert an element, array is full." << endl;
        return false;
    } else {
        for (int i=arrayPositionFromLast; i>insertPosition; i--)
        {
            array[arrayPositionFromLast-p]=array[arrayPositionFromLast-j];
            p++;
            j++;
        }
        array[insertPosition] = insertTarget;
    }
    return true;
}

int main()
{
    int array[6] = {1, 2, 3, 4, 5, 6};
    int numArrayElements = 6;
    int endOfArrayValue, insertedValue, insertedValuePosition;

    cout << "Enter a value and a position to insert: ";
    cin >> insertedValue >> insertedValuePosition;

    insertElement(array, numArrayElements, insertedValuePosition, insertedValue);
    displayArray(array, numArrayElements);
}
#包括
使用名称空间std;
常数int容量=20;
void displayArray(整数数组[],整数元素)
{
对于(int i=0;i
首先,您应该使用容量定义阵列

int array[CAPACITY] = {1, 2, 3, 4, 5, 6};
您可以使用memmove移动数据

if (numberElements>=CAPACITY)
{
    cout << "Cannot insert an element, array is full." << endl;
    return false;
} else {
   memmove(array + insertPosition+ 1, array + insertPosition, (numberElements - insertPosition) * sizeof (int));
   array[insertPosition] = insertTarget;
}
if(numberRelations>=容量)
{
库特