第14章 複雑な演算子 基本的な演算子については第4章で説明しましたが、この章では、もう少し複雑な演算子について説明します。 14-1.ビット演算子 ビット単位でデータ操作をするものです。対象は整数に限られます。 【ビット演算子】 演算子説明
C++では, #define で定数を定義するな, const TYPE によるグローバル変数(もしくは適当な名前空間に内包されたグローバル変数)を使え, #define でマクロ関数を定義するな,代わりに inline 関数を使え,みたいなことが言われる.これは確かにその通りだ. 1項 #define ではなく, const と inline を使おう Scott Meyers (スコット・メイヤーズ): Effective C++ (吉川訳, アスキー出版局, 1998) に書いてあるように, プリプロセッサよりコンパイラに仕事させるべき だ.でもマクロにしかできないことも多々あるわけで. case 1: 配列のサイズを取得 #define SIZE_OF_ARRAY(array) (sizeof(array)/sizeof((array)[0])) SIZE_OF_ARRAY(配列)
指の動きの量を二つのボタンのマンハッタン距離で定義する。電話番号を表す文字列が与えられたときに、電話番号を押すのに必要な指の動きの最小値を返せ。なお、指の初期位置は5に設定されているものとする。 私の解答はこちら。 public class PhonePad { public int fingerMovement(String phoneNumber) { // 2次元配列の座標で番号を表現 String[][] pos = {{"1","2","3"},{"4","5","6"},{"7","8","9"},{"*","0","#"}}; // 1文字ずつに分解 String[] pushedArray = phoneNumber.split(""); // 直前の指の座標、yが縦方向、xが横方向(画像処理的に) int x = 1; int y = 1; int totalMove =
ホームに戻る TopCoder の傾向と対策(C++編) 0、はじめに TopCoder の概要は(Java編)に書いたので、 コードのぶんだけC++について書きたいと思います。 ヘッダの先頭は以下のように書きました。 実行時間には影響しないのでたくさん用意しておいたほうがいいです。 #include <algorithm> #include <cfloat> #include <climits> #include <cmath> #include <complex> #include <cstdio> #include <cstdlib> #include <functional> #include <iostream> #include <map> #include <memory> #include <queue> #include <set> #include <sstream>
数値を右詰めで0埋めな文字列に変換してみる。 ソースコード。 #include <stdio.h> #include <stdlib.h> #include <iostream> #include <sstream> int main() { int data = 1234; int keta = 8; // C的なコード char *ch = (char*)malloc(sizeof(char) * (keta + 1)); if(ch){ //sprintf(ch, "%08d", data); // 桁数を動的に指定できない・・・ sprintf(ch, "%0*d", keta, data); // 桁数を動的に指定できた\(^o^)/ printf("%s¥n", ch); free(ch); } // C++的なコード std::ostringstream oss; oss.s
【C++】STL for TopCoder TopCoderを始めて、最初にSTLの使い方でつまづいたので、最低限必要なものを備忘録を兼ねて簡単に解説します コードとコメントをひと通り読めば、大体の使い方が分かる、ということを目指して書いています 間違いなどありましたら指摘をお願いします 詳しい使い方は http://www.cppll.jp/cppreference/ 等のリファレンス参照 更新記録 2011/2/16 algorithmのnext_permutationについて追記 2011/2/2 string ,algorithmについて追記(stringのソート) 目次 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 int main() { 6 /* 7 * vector<>の宣言 8 *
vectorで表現するstringを、vstringと呼んでみるテスト。 typedef std::vector<char> vstring; コレで何がしたいのかと言うと、C文字列を表現したいのです。 ヌル文字で終端するアレ。 何故かと言えばやっぱり、可変長配列だから。 ほとんどの(凡人)プログラマがstringを使う理由はコレだと思うのです。 後はまぁ自分でnew/delete書かなくてイイとか。 以下vstringについてだらだらと。 文字列操作関数にバッファサイズ指定が要らなくなる。 //// キーワードを置換する関数。 // char配列版 void ReplaceKeyword(const char* src, const char* keyword, char* out, size_t outSize); // vstring版 void ReplaceKeyword(con
○vector配列(動的配列) #include <vector> 必要なヘッダファイル. vector<TYPE> data; TYPE型の可変長配列 data[] の宣言 data.push_back(x) data[]の最後尾にxというデータを付け足す. data.size() data[]の配列サイズを返す関数. data[N] 配列name[ ]のN番目のデータ. data.max_size() 最大サイズを返す。 (注意)new した領域を内部に抱え込んでいるオブジェクトを vector の要素として扱う場合では、 vector を破棄してもその要素 (ポインタ) の指している先のオブジェクトまでは破棄されないので、 何か明示的に破棄するコードが必要になってきます。 //VCでの警告を抑制 #pragma warning( disable : 4786 ) **********
C++マニアック C++言語,STL,sort,ソート,algorithm,アルゴリズム,使い方,pred,predicate,プレディケート,述語 ページの末尾へ トップページへ sort(ソート) このページでは STL のアルゴリズムである sort の使い方について解説します。 基本的な使い方 並べ替えの判断基準を変更する 大小関係の比較について プレディケートのバラエティ 英文字文書を読んで、文字数の頻度順にソートする例 身長や体重など複数の基準でソートする例 基本的な使い方 ページの先頭へ sort は、いわゆる並べ替えを行うアルゴリズムです。並べ替えることが出来るのは、通常の配列や、vector などのランダムアクセスイテレータが使えるコンテナの中身と言うことになります。list などは、ランダムアクセスできないので、ソートできませんが、list にはそ
「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧
プログラミングBのページへ戻る その前に,typedef 構造体とは 構造体の宣言 メンバ参照(直接参照) サンプルプログラム1 構造体の代入 構造体のサイズ 構造体の配列 サンプルプログラム2 構造体をメンバにする構造体 関数と構造体 構造体型の関数引数 構造体型の関数戻り値 構造体ポインタ型の関数引数 メンバ参照(間接参照) レポート問題 その前に, typedef typedef を用いると,既に定義されている型に,別の新しい名前をつけて定義することができる(typedef は型(type)定義(definition)を略したキーワードである).その方法は次の通り. typedef 定義されている型 定義する新しい型名; 具体的には次のようにする. typedef int seisu_t; これは, seisu_t という名前の型は int 型であると定義している. この型定義をした
STL(Standart Template Liblary)のvectorに構造体を突っ込んだときに、 その構造体のメンバでソートを行う方法。判ってしまえば簡単なのだけど、 ネットで結構苦労してやっと判明したので。 #include <stdio.h> #include <sys/types.h> #include <algorithm> #include <string> #include <vector> using namespace std; // 構造体の定義 struct FI { string path; string name; int size; }; // vectorの定義 std::vector<FI> vec; // 評価関数 bool name_asc( const FI& left, const FI& right ) { return left.name <
例:クラス #include <iostream.h> #include <string.h> class hito //クラス宣言 { private: char name[40]; int age; public: void setname(char* ss); //名前を設定するメンバ関数の宣言 void setage(int tosi); //年齢を設定するメンバ関数の宣言 void disp(); //内容を出力するメンバ関数の宣言 }; void hito::setname(char* ss) //メンバ関数(setname)の定義 { strcpy(name,ss); } void hito::setage(int tosi) //メンバ関数(setage)の定義 { if(tosi<0) age=0; ekse age=tosi } void hito::disp() //
ここでは、 The Office Uchida, School of Computerの e-Learningシステム 「速習 CプログラマのためのC++プログラミング入門」のためのサンプルプログラムを紹介しています。 この中に記載されているプログラムをブラウズあるいはカットアンドペーストしてください。 目次に戻る
最近はオライリーのC++実践プログラミングって本でC++を勉強中。 C++実践プログラミング 作者: スティーブオウアルライン,Steve Oualline,望月康司,クイープ出版社/メーカー: オライリージャパン発売日: 2003/09/01メディア: 単行本購入: 6人 クリック: 70回この商品を含むブログ (35件) を見る 15章はシンプルなポインタについて。C言語と一緒かな。 ありがちなミス 設問にあったのだけど、ポインタを返す関数は注意が必要。 #include <iostream> #include <string> // Cの文字列を変数に代入。その変数を返す。 char *str_c(){ char s[30] = "ABC"; return s; } // C++の文字列を変数に代入。その変数を返す。 std::string str_cpp(){ std::strin
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く