約 874,893 件
https://w.atwiki.jp/nkym_memo/pages/16.html
インライン関数(inline function)の特徴 仮引数付きマクロに近いもの。インライン関数が呼び出された場合、その部分が置き換えられる。 関数呼び出しに伴うオーバーヘッドを削減できる。 一方で呼び出す回数が多いとプログラムが肥大化するため、インライン関数は短いものに限る。 インライン関数はコンパイラに対してコマンドではなく要求である。要求が実行できない場合は通常の関数としてコンパイルされる。つまり、インライン化されない。 例)static変数、ループ文、switch文、goto文、再帰 インライン関数の呼び出し 関数定義の前にinline指定子を付ける 例) #include iostream using namespace std; inline int even( int x ) { return !( x % 2 ); } int main() { if( even( 10 ) ){ cout "10 is even" endl; } if( even( 11 ) ) { cout "11 is odd" endl; } return 0; } 自動インライン化 クラス定義内でインライン関数を定義する場合、inlineキーワードは不要となる。 クラス定義内には数行にわたって書くこともできるが、簡潔に一行で書かれることのほうが多い。 他の場所で定義してはいけない。 例) #include iostream using namespace std; class samp { int i,j; public samp( int a, int b ); //defined here,divisible() inlined automatically int divisible(){ return !( i % j ); } }; samp samp( int a, int b ) { i = a; j = b; } int main() { samp ob1( 10, 2 ); samp ob2( 10, 3 ); if( ob1.divisible() ){ cout "10 is divisible by 2" endl; } if( ob2.divisible() ){ cout "10 is divisible by 3" endl; } return 0; } インラインコンストラクタ コンストラクタ、デストラクタをインラインで定義できる。 例) #include iostream using namespace std; class samp { int i,j; public //inline constructor samp( int a, int b ){ i = a; j = b; } int divisible(){ return !( i % j ); } }; 参考文献 独習C++ 第3版(Herbert Schildt,2002,翔泳社)
https://w.atwiki.jp/nkym_memo/pages/43.html
InterWiki は、PukiWiki と 他のサーバーを接続する機能です。 InterWikiName のページでサーバー名を定義しています。
https://w.atwiki.jp/nkym_memo/pages/69.html
マウスによる操作法 左ドラッグ X,Y軸まわりの回転 右ドラッグ X,Y軸方向の平行移動 Shift + 左ドラッグ 拡大・縮小 Shift + 右ドラッグ Z軸まわりの回転 コマンド 表示 単位は1/250Å 例)spacefill 500 → 半径2Åの球で表示 wireframe ワイアフレーム表示 wireframe [true/false] wireframe [値:シリンダの太さ] spacefill 空間充填表示 spacefill [true/false] spacefill [値:空間充填球] 移動・サイズ変更 rotate 回転 rotate [x,y,z軸] [角度(°)] transrate 平行移動 transrate [x,y,z方向] [値 移動距離] zoom 拡大・縮小 zoom[値:拡大度(%)] reset 初期状態に戻す reset fedora13でのインストール(途中/セグメンテーションフォールトが起きます) 各種パッケージをインストール yum install libtool CVector-devel wget xmkmf libXpm-devel libXi-devel Neartreeのインストール TNear.h に #include algorithm を追加 CNearTreeTest.cpp に #include string.h を追加 make install Rasmolのインストール ソースをダウンロードして解凍 /src にて xmkmf make rasmol make install
https://w.atwiki.jp/nkym_memo/pages/189.html
TEST条件チェック CHECK( boolean condition ) ブール条件をチェックする CHECK_TRUE( boolean condition ) ブール条件がTRUEであるかチェックする CHECK_FALSE( boolean condition ) ブール条件がFALSEであるかチェックする CHECK_EQUAL( expected, actual ) ==を使って期待(expected)と結果(actual)が等しいかチェックする CTRCMP_EQUAL( expected, actual ) strcmp()を使って2つのconst char*文字列を比較する LONGS_EQUAL( expected, actual ) 2つの数値を比較する BYTES_EQUAL( expected, actual ) 2つの8ビット幅の数値を比較する POINTERS_EQUAL( expected, actual ) 2つのポインタを比較する DOUBLES_EQUAL( expected, actual, tolerance ) 2つの倍精度浮動小数点数( double )を指定した許容範囲内で比較する FAIL( text ) テストを失敗させて、メッセージを出力する 参考文献 テスト駆動開発による組み込みプログラミング(James W. Grennig, 蛸島昭之 監訳, 笹井崇司 訳)
https://w.atwiki.jp/nkym_memo/pages/184.html
ogv を mp4へ変換 http //krakenbeal.blogspot.jp/2010/06/ubuntuogvavimp4.html
https://w.atwiki.jp/fkym_mshr/pages/6.html
更新履歴 @wikiのwikiモードでは #recent(数字) と入力することで、wikiのページ更新履歴を表示することができます。 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/17_117_ja.html たとえば、#recent(20)と入力すると以下のように表示されます。 取得中です。
https://w.atwiki.jp/nkym_memo/pages/91.html
木構造(tree structure) 階層関係(上下関係)を表現するためのデータ構造 例) UNIX,WindowsのOSでの階層ディレクトリ 1つの節は、それ自体が木である。この木に含まれるただ1つの節が、この木の根である。 k個の木T1〜Tkがあり、それぞれの根を節n1〜nkとする。 節nを節n1〜nkの親にすると、節nを根とする新しい木Tが得られる。 このとき、木T1〜Tkは、木Tの部分木(subtree)であるという。 部分木の根n1〜nkは、節nの子であるという。 attachref キーワード ノード、節(node) 木構造におけるデータ ラベル(label) 節のもつ値 根(root) 節のなかで最上位のもの 親(parent),子(child) 節の階層関係(上下関係) 葉(leaf),端節(terminal node),外部節(external node) 子をもたない節 非終端節(non-terminal node),枝節(branch node),内部節(internal node) 葉以外の節 部分木(subtree) 特定の節の子を根にする木 兄弟(sibling) 同じ親をもつ節同士のこと 先祖(ancestor),子孫(descendant) ある節から、根に向かって(上方に)節をたどるとき、途中に出現する節 レベル(level) 根を0として、階層をたどる回数 空の木(null tree) 節を持たない木 順序木/無順序木 順序木(ordered tree) 兄弟間で左が兄、右が弟という順序づけを行った木 無順序木(unorderd tree),有向木(oriented tree) 兄弟間に順序の無い木 参考文献 定本 Cプログラマのためのアルゴリズムとデータ構造(近藤嘉雪,ソフトバンククリエイティブ,1998) コメント
https://w.atwiki.jp/nkym_memo/pages/108.html
[[用語集 ./用語集]] [[物性 ./物性]] [[bcc金属 ./bcc金属]] [[メモ ./メモ]]
https://w.atwiki.jp/nkym_memo/pages/27.html
Emacs インストール 移動および検索、置換 バッファ/ウィンドウ/フレーム .emacs(emacs設定ファイル) デフォルトのキーバインド一覧 各モードの設定 プログラミング Org-mode 設定ファイル(.emacs)の再読み込み .emacsのバッファにて M-x eval-current-buffer または、 M-x road-file で ~/.emacs を指定。 設定ファイル(.emacs)を読み込まないで起動 $emacs -q emacs23におけるフォントの変更 emacsを立ち上げてoptionsメニューの「Set Font/Fontset...」をクリック フォントサイズの変更は、C-x C-+ で拡大、C-x C--で縮小 emacsを端末内で起動する $emacs -nw ※いくつか使えないキーバインドがある 文字の折り返し M-x toggle-truncate-linesで折り返し。 一行の文字数を変える場合 http //www.serendip.ws/archives/1228 emacsclient シェルから現在のEmacsにアクセスする。Emacsの起動時間を省くことができる。 編集が終了したら C-x #(server-edit) .emacsに以下を追記 ;;; emacsclient (server-start) .bashrc(シェルの設定ファイル)に以下を追記 # emacs client export EDITOR=emacsclient export VISUAL=emacsclient リドゥの追加(redo+.el) やり直し(undoの逆)を追加する。ここではM-zとしてある。 インストール M-x install-elisp-from-emacswiki redo+.el .emacsに以下を追記 ;;; redo+.el ;; M-x install-elisp-from-emacswiki redo+.el (require 'redo+) (global-set-key (kbd "\M-z" ) 'redo) (setq undo-no-redo t); 過去のundoがredoされないようにする ;; 大量のundoに耐えられるようにする (setq undo-limit 600000) (setq undo-strong-limit 900000) Emacs Lispインストーラの利用(auto-install.el) インターネット上のEmacs Lispをインストールする作業を自動化する。 auto-install.elのインストールは手動で行う必要がある。 $mkdir -p ~/.emacs.d/auto-install $cd ~/.emacs.d/auto-install $wget http //www.emacswiki.org/emacs/download/auto-install.el $emacs --batch -Q -f batch-byte-compile auto-install.el .emacs に加える設定 ;;;Emacs Lispインストーラを利用 (add-to-list 'load-path "~/.emacs.d/auto-install") ;;(install-elisp-from-emacswiki "auto-install.el") (require 'auto-install) ;;起動時にEmacswikiのページを補完候補に加える (auto-install-update-emacswiki-package-name t) ;;install-elisp.el互換モード (auto-install-compatibility-setup) ;;ediff関連のバッファを一つのフレームにまとめる (setq ediff-window-setup-function 'ediff-setup-windows-plain) リモートマシンのファイルに透過的にアクセスする(tramp.el) リモートファイル名の書式 /METHOD USERNAME@HOSTNAME FILENAME METHOD:通信方法 ssh,rsh,telnet,su,sudo 例)ssh でユーザ「foo」がホスト「foonet」にある「~/.bashrc」を編集する C-x C-f /ssh foo@foonet ~/.bashrc ssh-agentやkeychainなどのパスワード入力を回避するプログラムを使っているならパスワードは聞かれない タブでファイル名の補完可能。 ファイル作成時にテンプレートを挿入する(autoinsert.el) 特定のディレクトリ内のファイルを、ファイル作成時に自動挿入する。 作成するときに「Perform \.c auto-jinsertion?(y or n)」と聞かれるので、挿入するならy 自動挿入するファイル、ディレクトリがない場合は事前に作成 .emacsに以下を追記 (auto-insert-mode) ;;最後の/は必須 (setq auto-insert-directory "~/.emacs.d/insert/");自動挿入するファイルのあるディレクトリ (define-auto-insert "\\.c" "c-template.c");自動挿入するファイル col-highlight.el vline についてのエラーはvline.elをインストール Emacsでmanを読む(woman※) M-x womanでmanをEmacsで読む M-x woman ミニバッファにて Manual Entry マニュアル名 移動方法 n/p セクション間を前後に移動 g セクション名の入力によるジャンプ s See Alsoセクションへジャンプ マニュアルにカーソルを合わせてrキーで該当マニュアルを別バッファでオープン ※manコマンドを使用せず、Emacsでマニュアルを表示するという、without man が由来。 参考文献 Emacsテクニックバイブル〜作業効率をカイゼンする200の技〜(るびきち,2010,技術評論社) 便利なツール Emacsらくらく入門(藤原誠,2004,技術評論社) Ubuntu Weekly Recipe 第145回 manのさまざまな使い方 私の .emacs で設定している項目(土屋 雅稔) ~/.emacsへの雑多な設定
https://w.atwiki.jp/nkym_memo/pages/157.html
コンパイル M-x compile コンパイルで文字化けする場合 compilationウィンドウでエラー文が化ける、もとい文字コードが適切でない場合。 http //wiki.livedoor.jp/eruvasu/d/emacs-shell-mode より転載 .emacsに以下を追記 (add-hook 'set-language-environment-hook (lambda () (when (equal "ja_JP.UTF-8" (getenv "LANG")) (setq default-process-coding-system '(utf-8 . utf-8)) (setq default-file-name-coding-system 'utf-8)) (when (equal "Japanese" current-language-environment) (setq default-buffer-file-coding-system 'iso-2022-jp)))) (set-language-environment "Japanese") サブディレクト以下でMakeする場合 例えばディレクトリ構成が次のような場合を想定する --- top - Makefile main.c |- sub1 - sub11.c sub12.c sub11.cを編集中にM-x compileを行うと、上位ディレクトリのmain.oが見つからないとエラーが表示される。 これはM-x compileがsub1から実行されているため。 そこで、M-x compileでのコマンドをmakeから cd ../ make とすると、上位ディレクトリからmakeを実行することができる。 http //stackoverflow.com/questions/1668928/invoking-makefile-in-the-project-root-directory-from-subdirectory-emacs-c