Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <vector>
- using namespace std;
- template<class T>
- class Vector {
- private:
- int size;
- T *data;
- public:
- Vector(){
- size = 3;
- data = new T[size];
- data[0] = 0;
- }
- Vector(int _size){
- this->size = _size;
- this->data = new T[size];
- cout << "Viziv konstr: vvedite " << size << " el vectora: " << endl;
- for (int i = 0; i < size; i++){
- cin >> data[i];
- }
- }
- Vector(Vector& v){
- this->size = v.size;
- this->data = new T[this->size];
- for (int i = 0; i < v.size; i++){
- this->data[i] = v.data[i];
- }
- }
- friend ostream& operator<< (ostream& out, Vector<T> & v) {
- for (int i = 0; i < v.size; i++) {
- out << v[i] << " ";
- }
- out << endl;
- return out;
- }
- friend istream& operator>> (istream& is, Vector<T> & v);
- Vector<T> operator+ (const Vector& v){
- Vector temp(*this);
- for (int i = 0; i < this->size; i++){
- temp.data[i] += v.data[i];
- }
- return temp;
- }
- T& operator[] (const int i) {
- if (i < 0) { return data[0]; }
- if (i >= size) { return data[size - 1]; }
- return data[i];
- }
- ~Vector(){
- delete[] data;
- }
- };
- template<typename T>
- istream& operator >> (istream& is, Vector<T> & v){
- for (int i = 0; i < v.size; i++) {
- is >> v[i];
- }
- return is;
- }
- int main()
- {
- Vector<int>v1(3);
- Vector<int>v2(3);
- Vector<double>v3(3);
- Vector<double>v4(3);
- Vector<int> n ;
- n = v1 + v2;
- cout << "v1 + v2 = " << n;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement