2006-11-28から1日間の記事一覧

vectorに要素を追加するコードと実行結果

#include <stdio.h> #include <vector> using namespace std; int main() { vector<int> vec; printf("size = %d, capacity = %d\n", vec.size(), vec.capacity()); for(int i = 0; i < 10; i++){ vec.push_back(i); } printf("size = %d, capacity = %d\n", vec.size(), vec.capac</int></vector></stdio.h>…

vectorコンテナを利用する例

#include <stdio.h> #include <vector> using namespace std; int main() { vector<int> vec(10); int i; for(i = 0; i < 10; i++){ vec[i] = i; } int sum = 0; for(i = 0; i < 10; i++){ sum += vec[i]; } printf("0+1+2....+9 = %d\n", sum); return 0; }</int></vector></stdio.h>

それぞれのデータ操作に対するコンテナの処理速度

コンテナの種類 先頭へ要素を追加/削除 末尾に要素を追加/削除 コンテナの途中に要素を追加/削除 ランダム・アクセス 検索 vector O(N)+ O(1)+ O(N)+ O(1) O(N) deque O(1)+ O(1) O(N) O(1) O(N) list O(1) O(1) O(1) × O(N) map O(logN) O(logN) O(logN) × O…

STLが提供するコンテナ

コンテナの種類 特徴 vector 動的配列。ランダム・アクセスが可能で末尾への挿入/削除が高速 deque 両端キュー。ランダム・アクセスが可能で先頭と末尾への挿入/削除が高速 list 双方向リスト map キーに対応する値を高速に検索できる。キーの重複を許さない …

クラステンプレートと利用例

#include <stdio.h> const double PI = 3.14159; template<class TYPE> class CCircle { public: TYPE x; TYPE y; TYPE r; CCircle(){} CCircle(TYPE X, TYPE Y, TYPE R){x = X; y = Y; r = R;} TYPE CalcArea(){return r * r * PI;} void Move(TYPE, TYPE); }; template <class TYPE> void CC</class></class></stdio.h>…

テンプレート関数でクラスを引数にもできる

#include <stdio.h> #include <string.h> class CPerson { public: char* m_pszName; //名前 int m_nAge; //年齢 CPerson(char*, int); CPerson(){m_pszName = NULL; m_nAge = 0;} ~CPerson(){if(m_pszName) delete[] m_pszName;} CPerson(CPerson&); CPerson& operator=(CPerso</string.h></stdio.h>…