Другие языки программирования и технологии

Как присвоить значение одного массива другому? С++

**
***саня ***
1 148
#include <iostream>
#include <array> // для таких целей в STL имеется шаблон array
using namespace std;
void show(const char* msg, const array<int, 4U>& box) {
cout << msg;
for (const auto value : box) cout << ' ' << value;
cout.put('\n');
}
int main() {
// создаём три экземпляра класса array типа int на 4 элемента
array<int, 4U> n{ 1, 2, 3, 4 };
array<int, 4U> o{ 1, 3, 5, 7 };
array<int, 4U> e{ 2, 4, 6, 8 };
setlocale(LC_CTYPE, "Russian");
cout << "До присвоения: \n";
show("n:", n);
show("o:", o);
o = n; // можно присвоить
cout << "После присвоения: \n";
show("n:", n);
show("o:", o);
cout << "До обмена: \n";
show("n:", n);
show("e:", e);
swap(n, e); // можно обменять местами
cout << "После обмена: \n";
show("n:", n);
show("e:", e);
system("pause");
}
Виктор Садоха
Виктор Садоха
83 909
Лучший ответ
Зависит от того, как эти массивы созданы (есть несколько вариантов), и что ты называешь словом "присвоить" (можно скопировать указатель на массив или скопировать данные массива).
Павлик .
Павлик .
36 282
***саня *** нужно, чтобы эти массивы не зависели друг от друга.
std::copy(from_vector.begin(), from_vector.end(), std::back_inserter(to_vector));

https://en.cppreference.com/w/cpp/algorithm/copy
int arr[4] = { 10, 20, 30, 40 };
int b[4];
copy(arr, arr + 4, b);
for (auto u = 0u; u < 4; ++u)
{
cout << b[u] << endl;
}

#include < vector >
...
vector < int > arr = { 10, 20, 30, 40 };
vector < int > b(arr);
for (const auto &t : b)
{
cout << t << endl;
}

Похожие вопросы