区間の上端、下端を表すために使うデータの型を指定する。 double を使うことが多いだろう。その場合は、 例えば次のようにすると、変数 x が定義できる。
kv::interval<double> x;
typedef kv::interval<double> itv; itv x;
初期化をするには?
点区間
の場合は
itv x(1.); itv x=(itv)1.;
| これはダメ |
itv x=1.; |
| 定義した後、実行文で代入するのはOK |
itv x; x=1.; |
点区間でない、フツーの区間でも同様。
の場合は
itv x(1.,2.); itv x=itv(1.,2.); |
また、 文字列での初期化、代入も可能である。非整数データのときに役に立つ。
itv x("0.1", "0.2");
itv x;
x=itv("0.1", "0.2");
文字列での初期化を「標準」と考えるのが良いかもね。
円周率のような定数はどうしようかな? いつものやり方の自然な拡張をするのならば、以下のようになる。
| testkv1.c |
/*
* testkv1.c
* g++ -I/opt/local/include -I/usr/local/include testkv1.cc
*/
#include <iostream>
#include <math.h>
#include <kv/interval.hpp>
#include <kv/rdouble.hpp>
typedef kv::interval<double> itv;
int main(void)
{
itv pi;
pi = 4*atan(itv(1.0));
std::cout.precision(17);
std::cout << pi << std::endl;
return 0;
}
|
$ g++ -I/opt/local/include -I/usr/local/include testkv1.cc $ ./a.out [3.1415926535897931,3.1415926535897936] $ |
桂田 祐史