Мне нужно сделать эквивалент следующего кода С# в C++
Array.Resize(ref A, A.Length - 1);
Как этого добиться в C++?
Ответ 1
Размер массива статический в С++. Вы не можете динамически изменять его размер. Это что std::vector для:
std::vector<int> v; // size of the vector starts at 0
v.push_back(10); // v now has 1 element
v.push_back(20); // v now has 2 elements
v.push_back(30); // v now has 3 elements
v.pop_back(); // removes the 30 and resizes v to 2
v.resize(v.size() - 1); // resizes v to 1
Ответ 2
Вы не можете изменять размер массива, вы можете выделить только один (с большим размером) и скопировать содержимое старого массива.
Если вы не хотите использовать std::vector (по какой-то причине), вот код:
Напишите свой собственный метод. Выделите кусок памяти с помощью нового. с этой памятью вы можете расширить до предела объема памяти.
Ответ 4
Необработанные массивы не изменяются в С++.
Вы должны использовать что-то вроде Vector, что позволяет изменять размер.
std::vector позволяет изменять его размер, а также динамическое изменение размера при добавлении элементов (часто делая ненужным добавление вручную для добавления).
Ответ 5
Вы не можете этого сделать, см. этот вопрос.
Вместо этого вы можете использовать std: vector.