タグ

c++とC++に関するkwryのブックマーク (20)

  • C++ 文字列クラス std::string 入門

    C++ 文字列クラス std::string とは std::string とは C++ で標準に使用できる便利な文字列クラスでござるぞ。 C/C++ ではダブルクォートで文字列リテラルを表し、通常配列に文字を格納し加工することもできる。 strlen() など文字列の状態を返したり、sprintf() などの文字列を作成する関数などが用意されている。 しかし、リテラル文字列は動的な操作に不向きで、柔軟性に欠ける。 そのため、C++では動的にサイズを変更可能な文字列クラス std::string が導入された。 通常文字列と同じように [] 演算子で文字を参照・代入することはもちろん、サイズ情報等の取得や文字の挿入削除なども可能だ。 std::string は std::vector とよく似ている。size(), push_back() など、用意されているメンバ関数もほぼ同じで、 文字

    C++ 文字列クラス std::string 入門
    kwry
    kwry 2016/02/13
  • 文字列で学ぶC++入門 - Qiita

    C言語の知識だけを前提にC++の取っ掛かりとなることを目的とします。 ※ C++の知識は前提としません。 基的に、C++はC言語の機能を包含しています。コードの大半をC言語と同じように書いて、一部だけC++の機能を使うことも可能です。 ※ このような使い方をbetter Cと呼びます。 C++には文字列を処理するための型があります。言語組み込みの機能ではなく、ライブラリで定義された型です。同じような型を自作することも可能です。 C言語の延長線上で文字列型を自作しながら、C++がC言語をどのように拡張した言語なのか、雰囲気を感じて頂ければと思います。 文字列型 C言語とC++で文字列の結合を比較してみます。 C言語 文字列の結合 #include <stdio.h> #include <string.h> int main(void) { char buf[8]; const char *

    文字列で学ぶC++入門 - Qiita
    kwry
    kwry 2016/02/13
  • ゲームフレームワーク的なものを作る。まとめ。 - while( c++ );

    とりあえず、ここまでのまとめ。 今後も週に1,2回程度のペースで追加していきます。 ゲームフレームワーク的なものを作る。(20)〜2Dキーフレームアニメーション〜 ゲームフレームワーク的なものを作る。(19)〜シーングラフ〜 ゲームフレームワーク的なものを作る。(18)〜シリアライズ・デシリアライズ〜 ゲームフレームワーク的なものを作る。(17)〜オブジェクトプール〜 ゲームフレームワーク的なものを作る。(16)〜フェードイン・フェードアウト〜 ゲームフレームワーク的なものを作る。(15)〜ゲームの状態遷移(シーン遷移)〜 ゲームフレームワーク的なものを作る。(14)〜イベントハンドラ〜 ゲームフレームワーク的なものを作る。(13)〜イベントキューを作る〜 ゲームフレームワーク的なものを作る。(12)〜OpenGLで画像描画〜 ゲームフレームワーク的なものを作る。(11)〜OpenGLで文

    ゲームフレームワーク的なものを作る。まとめ。 - while( c++ );
    kwry
    kwry 2010/12/01
  • C++と Pthreads でミニマルなHTTPサーバを書く - いやなブログ

    C++と Pthreads でミニマルなHTTPサーバを書く 『UNIXネットワークプログラミング』を読んでいると、自分でも何かネットワーク系の小さなプログラムを書いてみたくなりました。そこで、ミニマルなHTTPサーバを C++と Pthreads で書いてみました。 同じ著者の「詳解UNIXプログラミング」もそうだったように、今回のもほとんどすべてのページに、重要なことが書かれています(最後のほうのXTIの部分は例外かもしれませんが)。 たとえば、27章ではネットワークサーバの実装として、次の設計方針がそれぞれ検討され、実際のコード付きで解説されています。 クライアントごとに fork 事前に fork - 各プロセスで accept 事前に fork - ファイルロックで accept を保護 事前に fork - Mutex ロックで accept を保護 (PTHREAD_PRO

    kwry
    kwry 2010/10/19
  • ニコニココメントサーバーにおけるメモリ使用量増大問題の調査と対策 - ドワンゴ 研究開発ブログ

    はじめに コメントサーバーは、ニコニコ関連サービスのコメントを司るサーバーである。稿は、ニコニコ広場で起こったコメントサーバーメモリ使用量増大問題について、我々コメントサーバー担当が行った調査と対策のまとめである。 今回のメモリ増大問題の解決にあたり、「仮説を立てる + 計測する→修正する→確認する」というパターンを繰り返した。このパターンは、ソフトウェアの様々な問題を調査するのに適用できる、基パターンである。 コメントサーバー概要 コメントサーバーについて簡単に概説する。 コメントサーバーはニコニコ関連サービスのコメントを管理するサーバーである。基的な機能は、新しいコメントの保存、およびコメントの出力である。ニコニコサービスのユーザーがコメントサーバーに直接触れることはなく、ニコニコのプレイヤーがコメントサーバーと直接やりとりを行う。ニコニコ動画の例でいうと、コメントサーバーを使用

  • Boostのあるプログラミング生活

    constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ

    Boostのあるプログラミング生活
    kwry
    kwry 2010/08/29
  • C++の便利ツール・ライブラリ - DO++

    フルタイムで働きはじめて4ヶ月。 いろんなことがありました。 今日はインターンが来ているということもあり日頃のC++コーディングライフの中で大変重用しているツールを紹介します。といってもどれも有名なツールでググれば解説がでてくるとは思いますので、一言ずつだけ紹介してみます。みなさんも何かよさげなライブラリ・ツールがありましたら教えてください。 - valgrind/callgrind/cachegrind プログラムの実行結果を解析するツール群。まぁ、王道であえて紹介する必要はないかもしいませんが.。valgrindはプログラムのどこかでメモリが漏れているかどうかのチェックに使います.コードのどの部分で確保した領域がどこで漏れているかまで追跡することができます valgrind --leak-check=full command プログラムのどのが計算量的にボトルネックになっているかを調べ

    C++の便利ツール・ライブラリ - DO++
    kwry
    kwry 2010/08/18
  • モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人

    まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo apt-get install build-essential デバッグツール デバッガおよびデバッグツールは少なくとも以下の三つは入れる。(あとltraceも欲しいかな?) GDB 言わずと知れたGNUのデバッガ Valgrind メモリリークや不正メモリアクセスの検出 strace システムコールのトレース $ sudo apt-get install gdb valgrind strace ビルドツール C, C++のビルドツールといえばまずmakeが浮かぶけど、最近ではSConsやCMak

    モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人
    kwry
    kwry 2010/08/02
  • C言語・C++言語用テスティングフレームワーク - Cutter

    最新リリース 2019-09-13にリリースされた1.2.7が最新です。 [ダウンロード] [変更点] Cutterとは Cutterは書きやすさ・デバッグのしやすさを重視したC言語・C++言語用のテスティングフレームワークです。メンテナンスしやすく、利用効果の高い単体テスト(ユニットテスト)の開発を支援します。 また、テストを苦痛ではなく、楽しいものにすることも重視しています。スクリーンショットはテスト結果の通知機能を利用している様子です。文字としてテストのパス・失敗を伝えるだけではなく、視覚的にも通知することで、テスト結果をわかりやすくします。わかりやすいので、頻繁にテストを実行したくなります。この機能はnotify-sendコマンド(Linuxや*BSDなどの場合)またはgrowlnotifyコマンド(macOSの場合)を利用します。 動作環境 CutterはDebian GNU/L

    kwry
    kwry 2010/06/28
  • 並列メッセージングフレームワーク「MessagePack-RPC for C++」リリース - Blog by Sadayuki Furuhashi

    分散KVS kumofs のコードは、全体で約2万行です。 そのうち、ネットワークI/Oやプロトコルに関するコードは約1万行で、全体の約半分を占めています。 並列イベント駆動I/Oフレームワーク「mpio」リリース ネットワークアプリケーションを実装する上で、もっとも大きな障壁は、ネットワークI/Oとプロトコルです。 では、それが両方ともフレームワークでサポートされ、コードを書く必要が無くなったらどうでしょうか? 54行で簡単な分散KVSを実装したり、140行で分散リアルタイム検索エンジンを実装することができます。すなわち、インデックス作成サーバ、検索サーバ、DBサーバなど、多数のサーバが連携し、スケールアウトの恩恵を得ることができるネットワークアプリケーションを、1台のホスト上で動作する並列アプリケーションとほぼ同じように書くことができます。 実装上の問題から解放されれば、並列性や耐障害

    並列メッセージングフレームワーク「MessagePack-RPC for C++」リリース - Blog by Sadayuki Furuhashi
  • Google C++スタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

    kwry
    kwry 2010/05/04
  • memologue - UNIX上でのC++ソフトウェア設計の定石 (2)

    鉄則2: シグナルハンドラで行ってよい処理を知ろう sigaction関数で登録したシグナルハンドラで行ってよい処理は非常に限定されている 次の3つの処理だけが許されている 自動変数の操作 “volatile sig_atomic_t” 型の大域変数の操作 「非同期シグナルセーフ」関数の呼び出し これ以外の処理を記述しないこと! 説明: シグナル受信時に何らかの処理を行うためには、シグナルハンドラと呼ばれる関数を用意し、それをsigaction関数でシグナル名と紐付けておけばOKです。しかし、シグナルハンドラ内で行ってよい処理は、上記の通り非常に限定されています。これを把握しないまま奔放なコードを書くと次のような現象が起き得ます: 問題1: プログラムがデッドロックする危険がある タイミングに依存する、再現困難なバグの原因となる デッドロックの発生が典型例だが、それ以外にも関数の戻り値不正

    memologue - UNIX上でのC++ソフトウェア設計の定石 (2)
  • UNIX上でのC++ソフトウェア設計の定石 (1) - memologue

    UNIXは、Windowsなどの“開発者に優しい”OSと比較すると、シグナルやスレッドの利用に関して制限事項が多いですが、それを知らずにアーキテクチャ設計および実装を行ってしまうケースが散見されます。これは、再現困難なバグの温床となるでしょう。 そこで、罠に嵌らないための「鉄則」を何回かに分けて書いてみようと思います。 鉄則1: シグナルの送受に依存しない設計にしよう 他プロセスおよび自プロセスに対し、非同期シグナルを配送して処理の流れを変える設計はやめよう 非同期シグナルとは、SIGUSR1・SIGUSR2・SIGINT・SIGTERM などの、killシステムコールによって生成・配送されるシグナルのこと 単に無視(SIG_IGN)するのは問題なし スレッドとシグナルの併用もやめよう 動作の予測が困難、デバッグが困難 説明: 同期シグナルとは、SIGSEGV,SIGBUS,SIGPIPE

    UNIX上でのC++ソフトウェア設計の定石 (1) - memologue
  • C++ Reference Project

    C Library The elements of the C language library are also included as a subset of the C++ Standard library. These cover many aspects, from general utility functions and macros to input/output functions and dynamic memory management functions: <cassert> (assert.h)C Diagnostics Library (header)<cctype> (ctype.h)Character handling functions (header)<cerrno> (errno.h)C Errors (header)<cfenv> (fenv.h)F

  • EffectiveC++入門

    C++プログラマにとって、『Effective C++』はバイブルのような存在です。どれくらいバイブルかというと、皆さんの使っているGNUのGCCコンパイラには、EffectiveC++のコーディングガイドラインに従っているかどうかチェックするためのコンパイラオプション『-Weffc++』が、あるくらいです。 しかし、その内容は決して初心者向きではなく、実際に買ったはいいが、書棚の肥やしになっているような人たちも多いと思います。そこで、そのような初心者の人たちに EffectiveC++ を読み解くために各章のエッセンスをまとめたガイドラインを書いてみました。 C++はもう時代遅れとよく言われますが、組み込み系からビジネスシステムまで、幅広くカバーできる言語は、C++以外にありません。C++を知っていれば、おそらくどのような業界にも通用するでしょう。ITプログラマを自負するのであれば、C+

    kwry
    kwry 2010/04/21
  • C/C++のための開発援助ツール、GCCSenseをリリースしました - Functional Emacser

    未踏プロジェクトの支援を受けて開発していた、C/C++のための開発援助ツールGCCSenseをリリースしました。配布物やドキュメントは次のURLから入手できます。 http://cx4a.org/software/gccsense/index.ja.html 開発援助ツールと銘打っていますが、現状利用できる機能はコード補完と自動構文チェック(Emacsのみ)だけです。将来的には関数ヘルプ機能や型表示機能を実装する予定です。 GCCSenseはコード補完などの機能を搭載した独自のGCCを利用しているため、インストールがかなり面倒です。ドキュメントによってある程度カバーしたつもりですが、環境によってまちまちなのでインストール時に問題が出てくるのは必至だと思います。その際は私に連絡してください。 また、独自GCCを利用している関係上、現状ではWindowsでの利用はできません。自由なソフトウェア

    C/C++のための開発援助ツール、GCCSenseをリリースしました - Functional Emacser
    kwry
    kwry 2010/04/18
  • 並列イベント駆動I/Oフレームワーク「mpio」リリース - Blog by Sadayuki Furuhashi

    分散KVS kumofs のコードは、全体で約2万行です*1。 そのうち、ネットワークI/Oやプロトコルに関するコードは約1万行*2で、全体の約半分を占めています。 ロジックは残りの半分*3だけで実装されています。 この実例から分かりますが、kumofsのような分散アプリケーションを開発するにはI/O周りの実装が大変で、とてつもなく大きな障壁になっています。*4 さらに今日では、性能を稼ぐためにマルチスレッド化が必須です。また、多数のクライアントを少ないリソースで効率よく相手にするには、非同期・イベント駆動型のアーキテクチャも必要になります。さらに、究極的な性能を達成すべく GC を利用しない C++ においては、実装のみならず設計も大変です。 これに加えてソケットAPIの難解な挙動に対処にしなければならないため、C言語やC++によるネットワークプログラミングは、vimの使いこなしなどと同

    並列イベント駆動I/Oフレームワーク「mpio」リリース - Blog by Sadayuki Furuhashi
  • C++ RTMP Server

    WELCOME TO RTMPD Outside of the Box Thinking What Is Our Story We focus on bringing content with an international style of reporting as well as providing wide-ranging universal tech events instead of putting our complete attention on smartphones and gadgets. The Tech Portal is reasonably the number one destination for all things relating to startups and tech. We desire to see and bring India to th

  • 快適な開発者ライフを送るためにすべきこと - qutil Wiki - qutil - OSDN

    最近の更新2008-09-24快適な開発者ライフを送るためにすべきこと 2008-09-03SideBar 2008-08-25FrontPage 最新リリース情報リリースはありません WikiガイドWikiの文法 リンクの種類と文法 ブロックプロセッサ 拡張文法 サイドバー プロジェクトWikiでの広告設定 サイドバーこのサイドバーについて サイドバーの編集 Outlineはじめに 設計スキルとコーディングスキル 21世紀的なコーディングをするために スキルアップしよう C言語はC++の25% C++学習ステップのガイドライン ソフトウェアデザインの学習と、C++での適応方法の習得 理想的なソフトウェアデザインのためのデザインパターンとその実装例 Mediatorパターン Observerパターン Factory Methodパターン ライブラリを積極的に利用しよう なぜBoostを使わ

    快適な開発者ライフを送るためにすべきこと - qutil Wiki - qutil - OSDN
  • [pdf]Swing実習マニュアル 大黒学

    大阪にはキャバクラが多い街として「キタ」と「ミナミ」があるんです。 この2つの街にはいろんなキャバクラがあるし、競合店が多いことから他のエリアより時給相場が高い上、新規のお客さんも来店しやすい。 だから、関西のキャバクラで働く上で、キタ、もしくはミナミのキャバクラを選ぶことがすごくおすすめ! けど、そうは言っても「じゃあキタとミナミだったらどっちの方が良いの?」って思う方もいるかもしれませんよね(笑) なのでここでは、大阪のキタとミナミのキャバ嬢目線から見た違いについて解説していきます! 大阪のキャバクラ「キタ」と「ミナミ」の違い では大阪のキタとミナミには、キャバクラにどんな違いがあるのか、各項目に分けて紹介していきます! 大阪のキャバクラで頑張って働いていこうと思ってる方は、自分の目的やキャバ嬢としてのキャリアに合ったお店を選んでくださいね! お給料 まずはお給料について。お給料は、大

  • 1