#include <iostream>
#include <cstdint>
using namespace std;
class SensorBuffer {
private:
uint8_t* data;
int size;
public:
// Constructor: allocate buffer
SensorBuffer(int n):size(n){
data = new uint8_t[size];
}
// Destructor: free buffer
~SensorBuffer(){delete [] data;}
// Copy assignment operator: perform deep copy
SensorBuffer& operator=(const SensorBuffer& sb){
if (this == &sb) return *this;
delete [] data;
size = sb.size;
data = new uint8_t[size];
for (int i=0; i<size; i++){
set(i,sb.data[i]);
}
return *this;
}
void set(int index, uint8_t value) {
data[index] = value;
}
void print() const {
for (int i = 0; i < size; i++) {
cout << (int)data[i];
if (i != size - 1) cout << " ";
}
}
};
int main() {
int N1, N2;
cin >> N1;
SensorBuffer A(N1);
for (int i = 0; i < N1; i++) {
int temp;
cin >> temp;
A.set(i, (uint8_t)temp);
}
cin >> N2;
SensorBuffer B(N2);
for (int i = 0; i < N2; i++) {
int temp;
cin >> temp;
B.set(i, (uint8_t)temp);
}
A = B; // Deep copy must occur here
A.print();
return 0;
}
Input
4 10 20 30 40 4 1 1 1 1
Expected Output
1 1 1 1