programming

C++でベクトルクラスを作成する〜その1

演算子のオーバーロードを使って簡単なベクトルクラス(2D)を作ってみます。下のようにソース内に直接"+"や"-"を書いて簡単に計算できるようなクラスを目標にしてみたいと思います。 Vector u(1,2); Vector v(3,4); cout<< u + v <

C言語で行列を扱うには?

C言語で行列を扱うためのデータ構造と、関数へ受け渡す方法についてのメモです。 1次元配列の受け渡し例 配列を関数に渡す場合、配列の先頭アドレスだけでなく、要素の個数も渡す必要があります。また配列の要素数はconstで宣言しなければなりません。 #incl…

線形リストを作ってみる その2

線形リストを作ってみる その1 - white wheelsのメモの続き。 push_back(最後尾に要素を挿入する), pop_back(最後尾の要素を削除する)を加え、好きな位置のノードにアクセスできるようにしてみます。 線形リストver2 List.h #ifndef __List_H #define __Lis…

線形リストを作ってみる その1

線形リストは、鎖のようにデータが連なったデータ構造をとります。 --[data]--[data]--[data]--[data]-- 線形リストの形には直線型、循環型があり、データを取り出せる方向として一方向、双方向の二種類に分かれます。 一方向の場合は前のノードを参照するこ…

文法備忘録C++編

C++基本文法のごくごくごく一部。 コメント //comment /*comment*/ 変数と宣言 int x,y; const double z;//定数 static int r;//静的変数 配列 1次元配列 int a[3];//宣言 a[0]=0;//要素へのアクセス 2次元配列 int a[3][2]={{1,2},{3,4},{5,6}}; a[0][1]=0;…

文法備忘録perl編

perl基本文法の覚書。入出力処理、正規表現は省略。 コメント #comment 変数と宣言 int i=0; #global my $str="test"; #local 配列 1次元配列 @num = (1, 2, 3); @str=("a","b"); @array=($val1,$val2); $array[0]=1; #要素へのアクセス 2次元配列 @array=([…

constメンバ関数について

constなオブジェトを扱う場合、メンバ変数を書き換られてはconstではなくなってしまいます。const性を保証するには、外部から呼び出されるメンバ関数によってメンバ変数が書き換えられないという条件を付けなければいけません。そこで登場するのがconstメン…

C++で演算子のオーバーロード

operator演算子 C++では自分の好きなように演算子を定義することができます。 例えばSTLでお馴染みのstringクラスでは、"+="演算子を利用して文字の連結処理を行うことができます。 string str1="sunny"; string str2=" day"; str1+= str2; //str1に"sunny d…