Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class SimpleVector {
- public:
- SimpleVector() : arr_(new int[10]), size_(10) {
- cout << "SimpleVector constructed for " << size_ << " elements, for " << this << endl;
- }
- SimpleVector(int size) : arr_(new int[size]), size_(size) {
- cout << "SimpleVector constructed for " << size_ << " elements, for " << this << endl;
- }
- SimpleVector(const SimpleVector& object) : arr_(new int[object.size_]), size_(object.size_) {
- for (int i = 0; i < size_; i++) {
- arr_[i] = object.arr_[i];
- };
- cout << "SimpleVector copy constructed for " << size_ << " elements, for " << this << endl;
- }
- SimpleVector& operator=(const SimpleVector& object) {
- if (!(this == &object)) {
- delete[] arr_;
- arr_ = new int[object.size_];
- size_ = object.size_;
- for (int i = 0; i < size_; i++) {
- arr_[i] = object.arr_[i];
- }
- }
- cout << "SimpleVector copy operator = for " << size_ << " elements, for " << this << endl;
- return *this;
- }
- SimpleVector(SimpleVector&& object) : arr_(object.arr_), size_(object.size_) {
- object.arr_ = nullptr;
- object.size_ = 0;
- cout << "SimpleVector move constructed for " << size_ << " elements, for " << this << endl;
- }
- SimpleVector& operator=(SimpleVector&& object) {
- if (!(this == &object)) {
- delete[] arr_;
- arr_ = object.arr_;
- size_ = object.size_;
- object.arr_ = nullptr;
- object.size_ = 0;
- }
- cout << "SimpleVector move operator = for " << size_ << " elements, for " << this << endl;
- return *this;
- }
- void print() const {
- for (int i = 0; i < 10; i++) {
- cout << arr_[i] << ' ';
- }
- cout << endl;
- }
- int& operator[] (int index) {
- if (index >= 0 && index < size_) {
- return arr_[index];
- }
- }
- ~SimpleVector() {
- delete[] arr_;
- cout << "SimpleVector destructed for " << size_ << " elements, for " << this << endl;;
- }
- private:
- int* arr_;
- int size_;
- };
- SimpleVector VectorFactory(int arrSize, int starting_point) {
- srand(starting_point);
- SimpleVector vec(arrSize);
- for (int i = 0; i < arrSize; i++) {
- vec[i] = rand() % 10;
- }
- return vec;
- }
- int main() {
- SimpleVector arr[10]{}; // результирующая выборка
- int index = 0;
- for (int i = 0; i < 10; i++) {
- cout << endl << endl;
- SimpleVector vec;
- vec = VectorFactory(1000000, i); // считываем, парсим откуда-то большой объем информации
- vec.print(); // как-то его обрабатываем
- // здесь могут быть какие-то еще функции для обработки
- if (vec[0] % 2 == 0) { // если в итоге он удовлетворяет определенным условиям
- arr[index] = move(vec); // записываем его в результирующую выборку
- index++;
- }
- }
- cout << endl << endl;
- for (int i = 0; i < index; i++) { // выводим результат
- arr[i].print();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement