Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- template<typename T>
- class SimpleVector {
- public:
- SimpleVector() : arr_(new T[10]), size_(10) {}
- SimpleVector(int size) : arr_(new T[size]), size_(size) {}
- SimpleVector(const initializer_list<T>& list) : arr_(new T[list.size()]), size_(list.size()) {
- int i = 0;
- for (const T& element : list) {
- arr_[i] = element;
- i++;
- }
- }
- SimpleVector(const SimpleVector& object) : arr_(new T[object.size_]{}), size_(object.size_) {
- for (int i = 0; i < size_; i++) {
- arr_[i] = object.arr_[i];
- };
- }
- SimpleVector& operator=(const SimpleVector& object) {
- if (!(this == &object)) {
- delete[] arr_;
- arr_ = new T[object.size_];
- size_ = object.size_;
- for (int i = 0; i < size_; i++) {
- arr_[i] = object.arr_[i];
- }
- }
- return *this;
- }
- SimpleVector(SimpleVector&& object) : arr_(object.arr_), size_(object.size_) {
- object.arr_ = nullptr;
- object.size_ = 0;
- }
- SimpleVector& operator=(SimpleVector&& object) {
- if (!(this == &object)) {
- delete[] arr_;
- arr_ = object.arr_;
- size_ = object.size_;
- object.arr_ = nullptr;
- object.size_ = 0;
- }
- return *this;
- }
- T& operator[] (int index) {
- if (index >= 0 && index < size_) {
- return arr_[index];
- }
- }
- T operator[] (int index) const {
- if (index >= 0 && index < size_) {
- return arr_[index];
- }
- }
- int Size() const {
- return size_;
- }
- ~SimpleVector() {
- delete[] arr_;
- }
- private:
- T* arr_;
- int size_;
- };
- template<typename T>
- void print(const SimpleVector<T>& vec) {
- for (int i = 0; i < vec.Size(); i++) {
- cout << vec[i] << " ";
- }
- cout << endl;
- }
- template<typename T>
- void sort(SimpleVector<T>& vec) {
- for (int i = 0; i < vec.Size(); i++) {
- for (int j = 0; j < vec.Size() - 1; j++) {
- if (vec[j] > vec[j + 1]) {
- T temp = vec[j];
- vec[j] = vec[j + 1];
- vec[j + 1] = temp;
- }
- }
- }
- }
- int main() {
- SimpleVector<int> vec;
- for (int i = 0; i < vec.Size(); i++) {
- vec[i] = rand() % 10;
- }
- for (int i = 0; i < vec.Size(); i++) {
- cout << vec[i] << " ";
- }
- cout << endl;
- SimpleVector<int> IntVector;
- for (int i = 0; i < IntVector.Size(); i++) {
- IntVector[i] = rand() % 10;
- }
- cout << "IntVector:" << endl;
- print(IntVector);
- cout << endl;
- cout << "Sorted IntVector:" << endl;
- sort(IntVector);
- print(IntVector);
- cout << endl;
- SimpleVector<string> StringVector;
- StringVector[0] = "two";
- StringVector[1] = "seven";
- StringVector[2] = "zero";
- StringVector[3] = "four";
- StringVector[4] = "one";
- StringVector[5] = "three";
- StringVector[6] = "five";
- StringVector[7] = "six";
- StringVector[8] = "eight";
- StringVector[9] = "nine";
- cout << "StringVector:" << endl;
- print(StringVector);
- cout << endl;
- cout << "Sorted StringVector:" << endl;
- sort(StringVector);
- print(StringVector);
- cout << endl;
- SimpleVector<int> IntVector2{ 3,5,2,7,9,1,4 };
- sort(IntVector2);
- print(IntVector2);
- SimpleVector<char> CharVector{ 'a','v','b','w','c'};
- sort(CharVector);
- print(CharVector);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement