とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

ユーザ定義タイプ + std::vector

STL―標準テンプレートライブラリによるC++プログラミング 第2版

// P128 ex06-02.cpp
struct U{
 unsigned long id;
 U():id(){}
 U(unsigned long x):id(x){}
};
bool operator==(const U& x, const U& y){return x.id == y.id;}
bool operator!=(const U& x, const U& y){return x.id != y.id;}

#include<iostream>
#include<vector>
#include<cassert>
int main(){
 using std::cout;
 using std::endl;
 using std::vector;
 cout << "Demonstrating STL vector constructors with "
  "a user-defined type." << endl;
 vector<U> v1, v2(3);
 assert(v1.size() == 0);
 assert(v2.size() == 3);
 assert(v2[0] == U() && v2[1] == U() && v2[2] == U());
 assert(v2 == vector<U>(3, U()));
 cout << " --- Ok." << endl;
}