C++に慣れている人にとっては当たり前のことかもしれないけど、あまりC++に親しんでいない場合、構造体を格納したSTLコンテナに対してアルゴリズム<algorithm>を有効に活用していないかもしれない。そこで、構造体を格納したvectorなどのSTLコンテナでソートや探索、削除などのアルゴリズムの利用方法を書いておく。 struct A { int n; int* p; }; 上記のような構造体はよく見かける形だと思う。構造体Aに整数型変数のnとポインタ型変数のpがあり、例えばnに配列の要素数、pにその配列を確保したりする。こういった構造体を以下のようにvectorなどのSTLコンテナを使って格納することは多々ある。 vector<A> A_list; これで構造体Aをコンテナに格納できるわけだ。ところで、STLコンテナを使用する一つの理由として便利なアルゴリズムが利用できることが挙げら
ここでは、入出力ストリームと共に使用するマニピュレータの作り方について解説します。マニピュレータは、関数でも、クラスでも実現できる少し毛色の変わったおもしろい存在です。マニピュレータを理解するにはオペレータのオーバーロードの知識が必須ですので、そちらもご覧ください。 マニピュレータとは 引数のないマニピュレータの作り方 引数のあるマニピュレータの作り方 グローバル関数として作成する方法 グローバルな関数オブジェクトとして作成する方法 クラスオブジェクトとして作成する方法 マニピュレータの応用例、printf 風マニピュレータ マニピュレータとは ページの先頭へ マニピュレータとは、cin、cout などを代表とする入出力ストリームに対する、挿入演算子 << や抽出演算子 >> と協調して、入出力フォーマットの変更を行うなどの目的で設計されたもので、標準ライブラリでは endl、setw、s
std::lower_boundを使おうとしたところで疑問、 struct some_huge_structA { int value; int other1; int other2; //and many member }; みたいな構造体のvalueでsortされていて、valueについての比較のもと、 lower_boundで取得したいとき。 先ず、lower_boundの定義 std::lower_bound(_FwdIt _First, _FwdIt _Last, const _Ty &_Val); std::lower_bound(_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred); 3引数の場合は、比較しようとするたびにsome_huge_structAが必要なので、 ありえない。 4引数の場合、 bool ope
Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23 Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18 IPA未踏のニュース inoue 2010-12-15 労基法とチキンゲーム inoue 2010-12-06 フロントエンドエンジニア inoue 2010-12-03 ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25 技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ
apacheモジュール内でwebAPIを呼んでXMLを解析する必要があるため、C/C++で利用できるXMLパーサを調べてみた。 Cだと expat libxml2 C++だと tinyXml Xerces などなど他にもさまざまなライブラリがあるようだが今回はlibxml2を使ってパースしてみる事とした。 XMLの知識に乏しいのと C言語が苦手なのと ライブラリのAPIが多すぎて などが重なってかなり苦戦しました。 でもXpathが使えるのは便利だなあと思った。 こちらの方のコードを参考に作らせていただきました。 yahoo!掲示板のRSSのitem要素を出力するだけのプログラム #include <stdio.h> #include <libxml/xmlreader.h> #include <libxml/xpath.h> enum Status { Success = 0, Fail
GNU/Linux でのスレッドプログラミング NPTL (Native POSIX Thread Library) Programming. 以前から GNU/Linux でスレッドプログラミングをするための簡単なガイドを書きたいと思っていました。今更スレッドプログラミングについて書いても目新しいものになるとは思えないのですが、初めて NPTL (Native POSIX Thread Library) を使ったプログラムをするという方には、もしかしたら役に立つ情報かもしれません。はじめは怖々小さなプログラムを書いて動かしてみる。思ったより簡単なことに驚かれるでしょう。スレッドプログラミングと言っても難しいことはなにもありません。ライブラリが沢山仕事をしてくるおかげで快適に使うことができます。 本文中では glibc のバージョンによる違いについても触れます。参照したバージョンは gli
文字列を連結する演算子 Last modified: May 15, 2002 AWK には,文字列を連結する演算子は特に用意されていない。文字列を(空白で区切って)並べることにより連結される。 例えば,a = "this" "is" "a" "test" という代入文を書くと,変数 a の内容は,"this is a test" となる。 文字の連結はこのような実際の文字列(文字列定数)でなくて変数の場合も,同じように行われる。 例えば,a = "XYZ", b = "abc" のとき,x = a "and" b により, 変数 x の内容は,"XYZ and abc" となる。 直前のページへ戻る E-mail to Shigenobu AOKI
(追記) この記事は公開から時間が経っており、内容が古くなっています。 本稿では、すでにプライベートなWebサーバを運用している人向けにGitサーバの構築方法を説明します。ひと手間をかけるだけでGitサーバを構成できます。Webサーバがない人はGitHubでプライベートリポジトリを作った方が早くて安くて旨いかもしれません。 要件 以下の要件を考えてみます。 SSHでGitリポジトリにアクセスしたい。 HTTPSでGitリポジトリにアクセスしたい。 Webブラウザでリポジトリを閲覧したい。 Gitリポジトリには機密性の高い情報を格納する可能性がある。 具体的には、 git clone git@git.example.com:/something.git とか、 git clone https://myname@git.example.com/something.git とかしたいです。 Gi
The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com. The version found here has been updated with corrections and additions from hundreds of contributors. If you see an error or have a s
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く