Я новичок в жизни объекта C++, так что несите меня.C++ vector: push_back массив int => Скомпилирован ли массив?
У меня есть вектор динамически выделенные массивы целых чисел: std::vector<int*>
This page говорит «Содержание Вала копируется (или перемещено) к новому элементу.»
Что я понимаю из этого, то, что я вдавливаю в массив, МОЖЕТ быть перемещен или скопирован, но когда он перемещается и когда он копируется?
Я подозреваю, что оцененное копируется, если оно имеет примитивные типы? Например, int, char и т. Д.?
И копируется в противном случае? Означает ли это, что мой массив будет «перемещен»?
===================
EDIT 1: то, что я пытаюсь выяснить, что я предполагаю передать вектор в функцию , В этой функции я выделяю массив целых чисел и вставляю его в вектор. Как только функция вернется, и я вернусь к вызывающей стороне, могу ли я безопасно получить доступ к массиву, который был просто введен в вектор?
EDIT 2: некоторые предложили использовать vector<vector<int>>
, поэтому мой вопрос стал, если я передаю «родительский» вектор в некоторую функцию. В этой функции я создаю внутренний вектор и вставляю его во внешний вектор. Когда я вернусь к вызывающей стороне, могу ли я безопасно получить доступ к новому внутреннему вектору, который был просто введен во внешний вектор? Что-то вроде этого:
void foo()
{
vector<vector<int>> parentV;
addVect(parentV);
//Is is safe to access parentV[0][0] here?
}
void addVect(vector<vector<int>> &parentV)
{
vector<int> child;
child.push_back(1);
child.push_back(2);
parentV.push_back(child);
}
Там * почти * нет причин на земле иметь «вектор» указателей на целые числа. Я не могу думать ни о чем. – SergeyA
Одним из вариантов было бы использовать 'std :: vector>', чтобы избавиться от динамически выделенного массива. –
Иногда он может быть полезен в качестве «индексатора строк» при моделировании матрицы. – Bathsheba