更にvectorとiteratorも
vectorとiteratorもほんの一部だけ実装してみました。ただ、iteratorとかはポインタが無いと辛い気がします。
#region Using directives using System; using System.Collections.Generic; using STL.Generic; using IntVector = STL.Generic.Vector<int>; using IntIter = STL.Generic.IForwardIterator<int>; #endregion class Program { static void Print(IntIter first, IntIter last) { Algorithm.ForEach<int>(first, last, delegate(int n) { Console.Write("{0} ", n); }); Console.WriteLine(); } static void TestVector() { // サイズ10のVectorを作成 IntVector iv = new IntVector(10); // 0〜9まで値を入れる for (int i = 0; i < iv.Size; ++i) iv[i] = i; // 0〜9が表示される Print(iv.Begin(), iv.End() ); // 9番目の要素が削除される iv.Erase(iv.Begin().Offset(8) ); // 8が消えている Print(iv.Begin(), iv.End() ); // 2番目から5番目(9-3番目を含まない位置)までの要素が削除される iv.Erase(iv.Begin().Offset(1), iv.End().Offset(-3) ); // 1〜5が消えている Print(iv.Begin(), iv.End() ); // 先頭から2要素が削除される iv.Erase(iv.Begin(), iv.Begin().Offset(2) ); // 0,6が消えている Print(iv.Begin(), iv.End() ); // 全て削除 iv.Clear(); if (iv.Empty() ) Console.WriteLine("Vector is empty."); // ReverseIterator // 0〜9まで値を入れる for (int i = 0; i < 10; ++i) iv.PushBack(i); // 9〜0が表示される Print(iv.Rbegin(), iv.Rend() ); } static void Main(string[] args) { TestVector(); Console.ReadLine(); } } /* 結果 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 9 0 6 7 9 7 9 Vector is empty. 9 8 7 6 5 4 3 2 1 0 */
今週はプログラミングが楽しかったので、英語の勉強がおろそかになってしまいました。なので、今日明日はプログラミングを封印です。さて、英語やるか・・・(^^;