前田稔(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; |
![]()