前田稔(Maeda Minoru)の超初心者のプログラム入門
/*★ Main Program Step1 前田 稔 ★*/ #include <iostream> #include "Vector.h" using namespace std; void main() { Vector<int> v; cout << "正常にコンパイルされることを確認します" << endl; } |
/*★ Vector Class Step1 前田 稔 ★*/ #ifndef VECTOR_H #define VECTOR_H #include<iostream> using namespace std; template<class T> class Vector { public: typedef T* iterator; typedef T& reference; // コンストラクタ Vector(int vsize=0, const T& v=T()) { array_size = vsize; current_size = vsize; array = new T[array_size+1]; // end() のために1を追加 for(int i= 0; i<vsize; i++) array[i] = v; } // デストラクタ ~Vector() { delete [] array; } //添え字演算子関数 reference operator[](int index) { return array[index]; } private: iterator array; int current_size; int array_size; }; #endif |
int i; Vector<int> v1(5,123); for(i= 0; i<3; i++) v1[i] = i+10; cout << "v1 "; for(i= 0; i<5; i++) cout << v1[i] << " "; cout << endl; |
Vector<int> v2(10); for(i= 0; i<7; i++) v2[i] = 20-i; cout << "v2 "; for(i= 0; i<10; i++) cout << v2[i] << " "; cout << endl; |
for(i= 0; i<5; i++) cout << v1[i] << " "; for(i= 0; i<10; i++) cout << v2[i] << " "; |
int size() { return current_size; } int capacity() { return array_size; } |
for(i= 0; i<v1.size(); i++) cout << v1[i] << " "; for(i= 0; i<v2.size(); i++) cout << v2[i] << " "; |
cout << "v1キャパシティー= " << v1.capacity() << " v1サイズ= " << v1.size() << endl; cout << "v2キャパシティー= " << v2.capacity() << " v2サイズ= " << v2.size() << endl; |
reference front() { } reference back() { } |
cout << "front= " << v1.front() << " back= " << v1.back(); cout << endl; |