全2383件 (2383件中 1-50件目)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.3.12 置換・添え字演算子で位置の文字の値を変更できるし、replace() を使う事で、新しい複数の文字で部分文字列全体を置き換える事もできる。・erase() は部分文字列を取り除き、サイズを調整します。引数なしで呼び出すと文字列は空文字になります。
2009年07月25日
コメント(25)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.3.11 探索・部分文字列探索:find(), 末尾から部分文字列を探索:rfind(), 文字の探索:find_first_of(), 末尾から文字の探索:find_last_of(), 引数以外の文字の探索:find_first_not_of(), 末尾から引数以外の文字を探索:find_last_of() などのメンバを取りそろえている。
2009年07月24日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.3.10 結合・結合は + 演算子で実現できる。・書きやすさのために速度が犠牲になっており、一時オブジェクトがかならず必要になる。
2009年07月23日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.3.9 挿入・演算子 += および append() で文字列の後ろに文字を追加する事ができる。・挿入は insert() でできる。
2009年07月22日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.3.8 比較・compare() で文字列を比較する事ができる。引数 n を指定すると先頭 n 文字分だけしか比較しない。・比較演算子として ==, !=, >, <, >=, <= の通常の比較演算子も定義されている。
2009年07月21日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.3.7 Cスタイル文字列への変換・string の中の文字を配列にコピーする事もできる。・data() 関数は文字列を配列に書き出し、配列のポインタを返す。・c_str() 関数は data() 関数と同じだが末尾に 0 を追加する。・copy() 関数は配列に文字をコピーする事ができる。
2009年07月20日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.3.6 代入・ある文字列を別の文字列に代入すると、被代入文字列はコピーされ、代入後には同じ値の2つの別個の文字列が残る。・string のコピーが本当に必要になるまで実際にはコピーされないような形の最適化も可能です。
2009年07月19日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.3.5 エラー・at() を使えば、範囲チェックが行われ、文字列の末尾を超えてアクセスしようとすると out_of_range() 例外が投げられ、[] を使ったときには範囲チェックは行われない。・たいていの文字列演算で文字列のサイズよりも大きな位置を指定すると out_of_range 例外が投げられ、大きすぎる値は残り全部と同じ意味に解釈される。
2009年07月18日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.3.4 コンストラクタ・string は C スタイル文字列、他の string、文字のシーケンスから初期設定できる。・length() は C スタイル文字列の中の文字数を返す。末尾の 0 を数えないところに注意が必要です。・basic_string の実装は、終了子に依存せず、長さ情報を格納している。
2009年07月17日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.3.3 要素アクセス・string の中の個々の文字には添字でアクセスできる。・at() で範囲外の文字にアクセスしようとすると out_of_range が投げられる。
2009年07月16日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.3.2 反復子・他のコンテナと同様に string は正順、逆順の反復処理のための反復子を提供する。・string の反復子は範囲チェックを行わない。
2009年07月15日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.3.1 型・basic_string の概念は単に string と呼ばれている basic_string<char> に限らず、様々な種類の文字をサポートする。・文字型の任意の型はユーザー定義コピーコンストラクタ、デストラクタ、コピー代入を持つ事はできない。
2009年07月14日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.3 basic_string・標準ライブラリ文字列機能は、 basic_string テンプレートをベースとしていて、basic_string<char> を string と typedef していて basic_string<wchar_t> を wstring と typedef している。・basic_string は vector と似ているが vector が提供するフルセットの演算の代わりに部分文字列などの文字列演算が提供されているところが異なる。
2009年07月13日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/20.2 文字・さまざまなキャラクタセットが使われている。・キャラクタセットは文字と整数値との対応表・ASCIIに含まれていない文字を持つキャラクタセットはより難しい処理が必要になる。異なるキャラクタセット間で同じ数値が異なる文字を持っている事があります。
2009年07月12日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/第20章 文字列20.1 イントロダクション・文字列は文字のシーケンスです。・標準には全般的な部分文字列機能が含まれていないのでここで示します。・C++は末尾に0を配置した char 型の配列の概念と C スタイル文字列を操作するための関数群を C から継承しています
2009年07月11日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.4.6 C スタイルのメモリ確保・<cstdllib> にある関数インターフェイスを継承している。・free() はデストラクタを呼び出さない。・realloc() が必要だと考えられる場合には標準コンテナを使うべきです。効率はかわりません。・memcpy() は重なり合っていない領域のコピーで、memmove() は、重なり合っている可能性のある領域のコピー。memcmp() はバイトシーケンスを比較する。19.5 アドバイス19.6 練習問題
2009年07月10日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.4.5 ダイナミックメモリ・例外指定が空になっている operator new(), operator new[]() は bad_alloc を投げてメモリ不足を知らせる事はできない。代わりに 0 を返します。・nothrow アロケータを使う事で、例外処理が導入される以前のエラー処理戦略をメモリ確保度使う事ができる。
2009年07月09日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.4.4 初期設定されていないメモリ・<memory> ヘッダは、標準の allocator の他、初期設定されていないメモリを扱うためのいくつかの関数を提供している。これらは、 T 型のオブジェクトではなく、T 型のオブジェクトを保持できるだけのスペースを参照するために T という型名を使う。・uninitialized_fill(), uninitialized_fill_n(), uninitialized_copy() などが標準ライブラリとして提供されている。
2009年07月08日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.4.3 汎用アロケータ・コンテナの要素を確保するときには、かならずコンテナのアロケータを使わなければならないという条件がある。アロケータを完全に一般的なものにする事を認めていたら、アロケータが任意の型の要素を確保できるようにする rebind メカニズムはもっと複雑なものにしなければならなくなる。・アロケータを使えば、通常のコンテナ演算に様々なサービスを透過的に提供する事ができる。しかし、データの記憶に関連する問題とデータの使い方に関連する問題は区別した方がよい。
2009年07月07日
コメント(1)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.4.2 ユーザー定義アロケータ・一度に1つずつオブジェクトを allocate(), deallocate() する事が多いが、このようなことをすれば new 呼び出しが無数に発生します。・標準コンテナの実装は、アロケータ型のすべてのオブジェクトを同じものとして扱う事が認められている。
2009年07月06日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.4.1 標準アロケータ・<memory>で宣言されている標準 allocator テンプレートは operator new() を使ってメモリを確保します。・allocate( n ) は、n 個のオブジェクトのためのスペースを確保し、deallocate( p, n ) 呼び出しによって解放できる。・アロケータが任意のオブジェクト型を確保できるようにするために、rebind という奇妙な型が用意されている。
2009年07月05日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.4 アロケータ・アロケータは、メモリを確保し、解放するための標準的な方法とポインタやリファレンスとして使われる型の標準的な名前を提供する。・ユーザーは共有メモリ、ガベージコレクションの対象となるアロケータなどを自分で作る事ができる。
2009年07月04日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.3.1 例外、コンテナ、アルゴリズム・実行時チェックは、デバッグ中だけコードに入れておき出荷時に取り除くのもよい。・例外が投げられた場所からできる限り近いところで例外をキャッチし、例外ハンドラの開発者に何がまずかったのかを知るチャンスを与えるべき。
2009年07月03日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.3 チェック付き反復子・範囲チェックを行う反復子を作る例。・バインダや挿入子同様に checked_iter を作るための関数を追加する。・簡単に使えるものにするため、コンテナ数を限定し、begen(), end() などが通常の反復子ではなく Checked_iter を返す事をのぞけば他のコンテナと同じように動作するようにする。
2009年07月02日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.2.6.1 ストリームバッファ・ostream, istream がバッファを満たしたり空にしたりするというアイデアを基礎としている。ただし標準の iostream の整形をバイパスする事もできる。この機能を istreambuf_iterator, ostreambuf_iterator の概念によってアルゴリズムにも提供されている。・streambuf からの読み出しは istream からの読み出しよりも低水準です。proxy 型は、実装定義のヘルパ型になっている。
2009年07月01日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.2.6 ストリーム反復子・標準ライブラリは、コンテナとアルゴリズムの一般的な枠組みにストリーム入出力を取り込むために4種類の反復子を提供しています。- ostream_iterator- istream_iterator- ostreambuf_iterator- istreambuf_iterator・char_traits は入出力や string で重要な意味を持つことになる文字の特性を記述する。
2009年06月25日
コメント(6)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.2.5 逆反復子・標準コンテナは、要素を逆順に反復処理するために rbegin(), rend() を提供しています。これらは reverse_iterator() を返します。・reverse_iterator は current という反復子を使って実装されています。アクセス違反を避けるため * は *(current-1) を返し、 ++ は current に対する -- を使って実装されています。
2009年06月24日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.2.4 挿入子・反復子を介して出力する際は、オーバーフロー対策が必要になります。そのため以下の反復子テンプレートクラスとそれらの反復子を使いやすくするための3種類の関数を提供しています。・back_inserter(), front_inserter(), inserter()
2009年06月23日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.2.3 反復子のカテゴリ・反復子の種類は(通常反復子カテゴリ)は、階層構造にまとめられる。標準ライブラリは5種類の反復子カテゴリを表現する5つのクラスを提供している。・distance() の実装で反復子カテゴリタグ引数を渡して内部で処理を分けるのに使用する。
2009年06月22日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.2.2 反復子の特性・反復子関連型は iterator_traits というテンプレートクラスに含まれる小さな集合によって記述されている。・iterator_category は反復子がサポートする演算の種類を示す型。difference_type は2つの反復子の距離を表現する型。
2009年06月21日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.2.1 反復子の演算・反復子は効率よく提供できる演算の種類に従って5つに分類される。・出力(Out)、入力(In)、前方(For)、双方向(Bi)、ランダムアクセス(Ran)・出力反復子を除けば2つの反復子の間の距離は要素を反復参照していけばわかるので distance() という関数が用意されている。この関数はコスト高になることがある。
2009年06月20日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19.2 反復子とシーケンス・反復子はシーケンスの要素を指すポインタという概念を抽象化したもの。・シーケンスは「次の要素演算によって先頭から末尾に到達できるもの」という概念を抽象化したもの。・反復子が要素を指しているかどうかは、シーケンスの「末尾」と比較することによって簡単にテストできる。この概念のため末尾のために特別な処理を用意する必要はなく、任意のタイプのシーケンスにうまく一般化できる。
2009年06月19日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/19章 反復子とアロケータ19.1 イントロダクション・反復子はコンテナとアルゴリズムを結びつける。・反復子はデータに対する抽象化された視界を提供する。・コンテナは広範囲のアクセスを確保するための演算群を用意する必要はない。
2009年06月18日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.11 Cスタイルアルゴリズム・互換性のために配列のみを対象とする、qsort(), bsearch() を持っている。・sort(), search() の方が汎用性が高く効率も上。18.12 アドバイス18.13 練習問題
2009年06月17日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.10 順列・next_permutation() と prev_permutation() はシーケンスから順列を作ります。・next_permutation() の戻り値は、次の順列が本当にそうンざいするかどうかを示す。・シーケンスは要素が辞書的な順序に並べられた順列になっている。
2009年06月16日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.9 min と max・比較基準に基づいて値を選択する機能を min(), max() で提供する。・辞書的な順序づけも、文字列から比較基準を持つ任意の型の値のシーケンスに簡単に一般化できる。
2009年06月15日
コメント(6)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.8 ヒープ・先頭の要素が最も大きな値を持つようにシーケンスを構成するための機能を push_heap(), pop_heap() で実現する。・シーケンスをヒープに変換する機能を make_heap() で実現する。・ヒープをシーケンスに変換する機能を sort_heap() で実現する。
2009年06月14日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.7.5 シーケンスに対する集合演算・集合演算はソートされていない場合は恐ろしく効率が悪くなってしまうので標準ライブラリはソート済シーケンスだけを対象として集合演算を提供しています。・set, multiset はソートされた集合を扱う。・includes() アルゴリズムは第二のシーケンスのすべてのメンバが第一のシーケンスのメンバになっているかどうかをテストする。・set_union(), set_intersection() はソート済シーケンスという形で出力する。・set_difference() は第一の要素だが第二の要素に入っていないものを返す。
2009年06月13日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.7.4 partition・シーケンスの分割を partition(), stable_partition() で実現できる。・partition() は相対的な順番を変えてしまうがメモリが少ないときには若干高速になる。
2009年06月12日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.7.3 merge・2つのソート済シーケンスを merge(), inplace_merge() を使って結合された新しいソート済シーケンスを作ることができる。・入力シーケンスから要素を削除しないという点で list の merge とは異なる。・等しいと判定された要素がある場合、第一の範囲に含まれる要素はかならず第二の範囲に含まれる要素より前に配置される。
2009年06月11日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.7.2 二分探索・find() などの線形探索はソートやハッシュを使わなければ線形探索以上のことはできない。・ソートされている場合は二分探索 binary_search() を使うことができる。・find() 同様に要素がシーケンスのどこにあるのか知るための equal_range()m lower_bound(), upper_bound() アルゴリズムが用意されている。
2009年06月10日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.7 シーケンスのソート・ソートするために要素比較手段が必要となりデフォルトでは less になっておりこれは < を使うようになっている。
2009年06月08日
コメント(3)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.6.8 swap・コンテナ内の要素を交換する場合に swap() が利用できる。・iter_swap() は反復子引数が指す要素を交換する。・swap_ranges() は2つの入力範囲のなかの要素を交換する。
2009年06月07日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.6.7 reverse と rotate・シーケンスの要素の順番を再構成する際に利用できる。・"Frog", "and", "Peach" のシーケンスを reverse() すると "Peach", "and", "Frog" になるし rotate() すると "and", "Frog", "Peach" になる。・random_shuffle() アルゴリズムは均質に分散した乱数を生成してシーケンスをシャッフルする。
2009年06月06日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.6.6 fill と generate・シーケンスに系統的に値を代入するために使用する。 _n バージョンは最初の n 個の要素に対して代入を行う。・fill() は指定された値を代入する。generate() は関数引数を繰り返し呼び出して得られた値を代入する。・生の記憶領域を操作しなければならないときは uninitialized_fill() のようなアルゴリズムを使わなければならない。
2009年06月05日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.6.5 remove・remove() は、一致しない要素をシーケンスの冒頭に集め、その部分の末尾を指す反復子を返す。・叙述関数を指定するか、値を指定することでシーケンスから要素を削除します。
2009年06月04日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/・replace() はシーケンスをたどり、要素を指定された値に書き換えていく。・find / find_if、unique / unique_copy 同様に全部で4種のパターンがある。
2009年06月03日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.6.3 unique・unique() と unique_copy() は、隣合う重複値を取り除く。・unique() はシーケンスから隣り合う重複要素を取り除くのに対して、 unique_copy() は重複のないコピーを作る。・unique() はユニークな要素をシーケンスの前の方に集め、ユニークな要素から構成される部分シーケンスの末尾を指す反復子を返す。
2009年06月02日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.6.2 transform・transform() はユーザーが提供した演算に基づいて入力を変形した物を出力する。・copy() は要素をそのまま返す演算を引数とした transform() として定義する事も可能。・また transform() は、明示的に出力を生成する for_each() の変種と見ることもできる。・値を返してくれない場合や入力シーケンスが const の場合は transform() の変わりに2シーケンスの for_each() を定義するとよい。
2009年06月01日
コメント(0)
プログラミング言語C++ を読んでいます。http://www.amazon.co.jp/dp/475611895X/18.6.1 コピー・あるシーケンスから別のシーケンスを作成するための最も単純な方法です。・コピーアルゴリズムのターゲットはコンテナでなくても構わず、出力反復子で記述できる物なら何でも構いません。
2009年05月31日
コメント(0)
全2383件 (2383件中 1-50件目)


![]()