タグ

プログラミングとC++に関するyasufのブックマーク (32)

  • アルゴリズムとデータ構造

    アルゴリズムとかデータ構造というのは、プログラミングの基礎中の基礎ですね。いまどきは、いろいろな言語において標準ライブラリで提供されていたりしますから、ただ使うだけならこれらを1から自分で書けるようになってもそんなにうれしくはないですが、必要な場面でよりよいアルゴリズムを選択できるように、概要くらいは知っておきたい物です。というわけで、ここではアルゴリズムとデータ構造についての話をしていこうかと思います。 説明やサンプルには、有無を言わせず C# を使います。 うちは C# 入門サイトですから。 ある意味、「C# によるプログラミング入門」のサンプルプログラムの延長みたいなページになってるかも。

    アルゴリズムとデータ構造
  • C言語の時間関係の関数のまとめ - 開発覚え書き

    久しぶりにC言語に触って、ベンチマークなど。 C言語の時間関係の関数をまとめてみた。 特に、clock関数はWindowsとUNIX(Linux)では 求められる時間の意味が異なるのは注意が必要。 ほとんどこのことに言及しているページがないのが もっと問題だと思う。 ---------- time関数 #include <time.h> time_t start_time, end_time; double sec_time; time( &start_time ); /* 処理 */ time( &end_time ); sec_time = difftime( end_time, start_time ); <p>精度・分解能: WindowsでもLinuxでも秒単位。time_t は整数型。</p> clock関数 #include <time.h> clock_t start_cl

    C言語の時間関係の関数のまとめ - 開発覚え書き
  • SimpleBoxes | ツリー構造 (多分木 : N 分木) の実装

    多分木と呼ばれるツリー構造は、親となるノードに、複数の子ノードがぶら下がるような形になっています。 この時、ひとつのノードに下に最大 2 つの子ノードしか存在できないようなツリー構造を「二分木」と言います。 WindowsMac OS X で利用できるディレクトリ構造もツリーで表現できますし、JavaScript などで利用する DOM もツリー構造になっています。 root n1 n1-1 n1-1-1 n1-2 n2 n2-1 n2-2 n2-2-1 n3 n3-1 ツリー構造を表現する構造体 ここでは、C 言語で実装してみます。 perl, javascriptphp などのスクリプト言語への変換はそれほど難しくないでしょう。 ノードの構造は、以下のように記述できます。 typedef struct node { struct node* child; struct no

  • 勉強用ページ

    using static System.Console; class Welcome { /// <summary> /// saying hello to all visitors and welcome. /// </summary> /// <param name="args">visitors</param> public static void Main(string[] args) { foreach(string visitor in args) { WriteLine($"Hello {visitor}."); } WriteLine("Welcome to my web page."); } } C# によるプログラミング入門 コンピュータの基礎知識 アルゴリズムとデータ構造 ブログ ようこそ ++C++; へ。 C#・情報工学を中心に勉強用ページとブログを載せています。

    勉強用ページ
  • Boost.勉強会#4で「ゲーム開発のC++」を話してきました - 神様なんて信じない僕らのために

    とりま、 アップロードしました。 スタッフの皆さん、参加者の皆さんお疲れ様でした。 アキラさんには直前まで資料作っていてご心配をおかけいたしました。orz... Boost study#4View more presentations from Isoparametric !.

    Boost.勉強会#4で「ゲーム開発のC++」を話してきました - 神様なんて信じない僕らのために
  • [迷信] とりあえず memset で初期化 | 株式会社きじねこ

    よく見かけるコードですが、上のコードは、必ずしも期待した結果になるとは限りません。なぜなら、double 型やポインタ型は、これらを構成する全ビットが 0 になったとしても、オブジェクトの値が 0 になるかどうかは分からないからです。 確かに、ほとんどの処理系では上記のコードでも問題なく、そして期待通りに動作します。しかし、それはあくまでも"たまたま"動いているに過ぎません。そうした不安定な要素をなくすために行った初期化が、かえってコードを怪しくしてしまっているのです。 単に、集成体の全要素をゼロクリアしたいだけであれば、 とすれば十分です。こう書くと、おそらく次のような反論が返ってくることでしょう。「その方法では、構造体の詰め物がゼロクリアされない」と。しかし、構造体の詰め物にアクセスして、言語仕様上保証される結果を期待することには無理があります。 構造体の詰め物をゼロクリアしたい理由は

  • C++/CLI(CLR) のページ

    超初心者の C++/CLI(CLR) 入門 超初心者の方は C++/CLI Maneged Mode から始めて下さい。 今、C++が「C++/CLI(Common Language Infrastructure)」として大進化しています。 私も最初は「また新しい言語でも出来たのかと」うんざりしていたのですが、何のことはない「往年の言語が大復活」するのですね。 (^_^;) MS-DOS 時代のC++言語や Windows Program や Maneged Mode から DirectX まで同じ環境で作成することが出来るようになります。 MS-DOS 時代を知っている古い世代には必見の方法で、その延長として Windows Program や DirectX を作成することが出来ます。 私は vista & Visual Studio .NET2005 を使っていますが、特に

  • VIEWコラム

    サイト内記事と、MixC++の日記エントリやブログ記事などの、私が書いた記事をまとめました。 リンクが張られていないタイトルは近いうちに書きます。 C/C++ Tips C++ Extension for Ranges概論 (1)概要と設計上の基概念 C++ Extension for Ranges概論 (2)コンセプトとRange基操作 C++ Extension for Ranges概論 (3)アルゴリズム Range概念によってSTLを発展拡張したライブラリについてのレポート。C++2a規格へ盛り込まれると見込まれている。 C++ Modules TS 調査レポート #includeの代替を目指して将来規格への取り込みを提案されているModuleについてのレポート。

    yasuf
    yasuf 2011/11/29
    18歳でこの内容は胸熱
  • ~VIEW~ プログラミングの世界

    プログラミングサイト「VIEW」へ来ていただき、ありがとうございます。 このページでは、プログラミングのさまざまな事を話題にしていこうと思います。

  • トップページ - Xerces/Xalan-C++ で XML

    コンパイラの想定環境は、 プロジェクトファイルの提供および動作確認の有無という観点から記載している。 XML パーサおよび XSLT プロセッサライブラリは、 マルチプラットフォームを対象としている。 そのためサイトで紹介しているソースコード自体は、 マルチプラットフォームを想定している。 補足 コンテンツ内で技術的解説を加えた上で公開しているクラスをユーティリティーとし、SourceForge.JP でオープンソースで公開する。 利用を検討する方は以下のサイトを参考のこと。 Xerces-C++ Utils(sourceforge.jp) コンテンツ XML パーサ(Xerces-C++)を使ったサンプル SAXで単純なプログラミング まずはXerces-C++の簡単な使い方も含め、単純なXMLプログラミングを始めよう。 DOMで単純なプログラミング Xerces-C++及びSAXの

  • 知っておきたい整数除算の豆知識

    割り算とは何を意味するか C言語では、整数同士の割り算(/)は結果を切り捨てて整数にします。つまり、3/2は1.5ではなく 1になります。また整数同士については剰余(%)が計算できます。これは割り算したあまりです。 たとえば5%3は2となります。 一般にmをnで割った商がaであり、剰余がbであるとは、次の関係式が成立することを言います。 m = n*a + b (ただし 0 数学で定義されているのは、m,nともに正の場合だけです。しかし、現実にはint型の演算として 定義されている以上は、何かの計算結果を出さなければなりません。 たとえば、m=-5, n=3の場合を考えてみます。上の関係式は必ず満たさなければならないので、 次のどちらかを採用することになるのです。上の場合には、剰余が負になってしまうという 不具合があり、下の場合には商がプラスの場合と絶対値が同じにならないという不具合があ

  • C++ の string と vector の reserve() の挙動 - bkブログ

    C++ の string と vector の reserve() の挙動 C++ の string と vector には前もって容量を確保するための reserve() というメンバ関数があります。何気なく使っていた関数ですが最近になって興味深い挙動に気づきました。 reserve() の基 string と vector の reserve() は前もって容量 (capacity) を確保しておくためのメンバ関数です。前もって容量を確保 (reserve) しておけば、データの追加時に発生する再割り当て (reallocation) を防ぐことができ、効率的です。 たとえば、何もしないで文字列に 1,000文字追加した場合、(内部的に倍々で容量を増やしていくため)10回程度の再割り当てが発生しますが、 s.reserve(1000) のように容量を確保しておけば 1回の割り当て (

  • 文字列操作は「C言語最大の欠点」か? | スラド デベロッパー

    ITProのコラム「記者の目」は複数の日経BPの雑誌記者が記事にはしにくい個人的な意見などを書いている人気コラムだが、最近「C言語最大の欠点」というタイトルのコラムが掲載された。 どうやらタレこみ子と同世代らしい記者は、C言語最大の欠点を文字列処理であると断じ、特にバッファーオーバーフローの回避のためのコードを書くのが大変なところと論じている。そして、C++でSTLのstringクラスを使うべし、と主張している。 タレこみ子の乏しい経験からいうと、バッファーオーバーフローの問題は確かに大きな問題だが、それは「文字列」処理で起きるというよりは、ネットワークから受信する「データ列」の処理で起きるケースのほうが多いように思う。STLについては詳しくないのだが、stringクラスは'\0'も含みうるデータ列を正しく処理できるのだろうか。 また、バッファーオーバーフローは問題として理解しやすく、コー

  • cppreference.com

    Function objects − hash (C++11) Swap − Type operations (C++11) Integer comparison (C++20) pair − tuple (C++11) optional (C++17) expected (C++23) variant (C++17) − any (C++17) String conversions (C++17) Formatting (C++20) bitset − Bit manipulation (C++20) Debugging support (C++26)

  • Standard Template Library プログラミング on the Web

    1985年、AT&TのBjarne StroustrupがC++をこの世に送り出しました。その後C++は様々な拡張を繰り返しながら進化してきました。 1991年、ISOはC++の国際標準(standard C++)を定める作業を開始しました。標準C++の最終草案は1997年にISO C++標準化委員会に承認されました。 標準C++が規定するのは言語仕様だけなく、C++標準ライブラリも規格の中で明確に定められています。それまでC++のライブラリといえばiostreamぐらいのものでしたし、それもあくまで"事実上の標準"でしかありませんでした。 そしてそのC++標準ライブラリの一部として組み入れられたのがSTL(Standard Template Library)です。すなわちSTLは標準C++の仕様の一部ということです。 僕がSTLを知ったのは1995年、いくつかのコンパイラがtemplat

  • Boost C++ Libraries

    Boost C++ Libraries ...one of the most highly regarded and expertly designed C++ library projects in the world. — Herb Sutter and Andrei Alexandrescu, C++ Coding Standards Welcome to Boost.org! Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work well with the C++ Standard Library. Boost libraries are intended to be widely useful, and usable across a br

    Boost C++ Libraries
  • libdecodeqr - Trac

    libdecodeqr What's this? "libdecodeqr" is a C/C++ library for decoding QR code based on JIS X 0510 and ISO/IEC18004. This library is able to decode various image formats whether it's taken from a file, webcam, scanner, or any other image formats available. Features Support various image formats and input devices. Support multi platforms. Hi-Speed decoding. Completely Free. Requirements g++ / VC++6

  • wxWidgets でクロスプラットフォーム GUIアプリを作ろう

    最終更新日: 2004-10-08 (公開日: 2004-10-08) UNIX USER誌 2004年8月号 に掲載された記事の元の原稿です。 文中の「原稿執筆時点」は「2004年 6月半ば」を指します。 wxWidgets は Linux, Windows, Mac OS X など多くのプラットフォー ムに対応したオープンソースの GUI ツールキットである。稿で は wxWidgets を用いてクロスプラットフォーム対応の GUI アプリ ケーションを開発する方法を紹介する。 はじめに Unix の大きな魅力のひとつに、強力なコマンドライン処理がある。 zsh などのシェルと perl などのワンライナーを組み合せて、大量 のファイルを一気に処理するときなどは、「これぞコマンドライン の醍醐味」と感じる瞬間である。 一方、Unix の大きな不満のひとつに、凶悪なコマンドライン書法

    yasuf
    yasuf 2009/07/10
    c++で利用できるguiライブラリのまとめ
  • C++ : language&libraries

  • テンプレートの定義・実装について