[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/17 22:51 / Filesize : 282 KB / Number-of Response : 1031
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part135



1 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 20:20:06.25 ID:o3PNwIlC0.net]
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part134
mevius.5ch.net/test/read.cgi/tech/1516406742/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
mevius.5ch.net/test/read.cgi/tech/1509780815/

■長いソースを貼るときはここへ。■
 codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

950 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 22:56:14.51 ID:EV/maKH/0.net]
>>921
ウィンドーズならWaitForMultipreObjects()とかその亜種で複数の終了待ちができうる
そうでなくともイベントフラグの同時待ちはだいたいどんなマルチタスクOSでもできるから
それを使って類似のしくみを作れうる、。

951 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 23:21:33.93 ID:i2WXWbd70.net]
>>923
できうる、作れうるって日本語的におかしいだろう

952 名前:デフォルトの名無しさん [2018/06/01(金) 04:04:16.74 ID:p3jBadVq0.net]
ウインドーズとか何か別物感あるし、multipleのスペルもおかしいし大丈夫か

953 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 04:08:40.92 ID:ampOWGNn0.net]
色々なところで糞が露呈している
それがWindows

954 名前:はちみつ餃子 mailto:sage [2018/06/01(金) 04:11:32.11 ID:uW2rQW//0.net]
デザインとしては Windows の方が現代的なんだけど、
色んなものが POSIX を基本にしたデザインになってるから噛み合わないんよなぁ。

955 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 04:16:04.83 ID:ampOWGNn0.net]
POSIXに準拠できないWindowsがどうかしている

956 名前:はちみつ餃子 mailto:sage [2018/06/01(金) 04:22:16.25 ID:uW2rQW//0.net]
>>928
昔は POSIX 準拠にしてたよ。
アメリカの政府が採用するのに POSIX を要求してたみたいで、仕方なくやったって話。
だけど、基本的なモデルが違うものに API だけ接ぎ木してもなぁ。

957 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 04:43:45.31 ID:SICoZSIN0.net]
windowsでpthread使うたびにトラブル起こってつら

958 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 08:14:44.74 ID:WJ5uQBEIM.net]
>>921
他に条件があるならともかく、普通にjoinで待てばよくね?



959 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 08:27:54.49 ID:WJ5uQBEIM.net]
>>922
joinしたら再利用できないだろ

960 名前:デフォルトの名無しさん [2018/06/01(金) 08:30:22.24 .net]
>>931
別に、joinで済むならjoinでいいんじゃね

961 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 09:15:20.19 ID:oHKnNuZr0.net]
キャンセルしたくなるほど長い処理ならスレッドキューイングする利点はない
もちろんしたいならしてもいい

962 名前:デフォルトの名無しさん [2018/06/01(金) 09:35:53.16 ID:uCsHgk1n0.net]
C++を使うなら、Windowsでいいんじゃないの。
Clang、gcc、clと主要なコンパイラが動く貴重な環境だし。
文書を残さないといけないからアプリも必要。
図を描くのにvimでSVG書くって人もいるけど、流石にそれは労力の使い方を間違えてる。

963 名前:デフォルトの名無しさん [2018/06/01(金) 10:01:00.93 ID:oDn7ey18M.net]
サブスレッドでjoinして結果を使わない、というのとデタッチするのとどう違うんやろな。デタッチってなんのメリットあるんやろか。

964 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 10:15:36.25 ID:oHKnNuZr0.net]
自分で書いてる通り結果を使わなくて終了も待ちたくないなら join せずデタッチ。
メリットはリソース(スレッドハンドルなど待ち合わせ用リソース)の自動的な解放くらいか。

965 名前:デフォルトの名無しさん [2018/06/01(金) 11:41:29.12 ID:sIQxQP9sa.net]
連結リストのクラス list があります。
addFirst
removeFirst

などのメンバ関数があります。

この list を継承して、 stack クラスを作ります。

stack クラスにはメンバ関数 push と pop があります。

push の中で addFirst を呼んでいます。
pop の中で removeFirst を呼んでいます。

stack クラスのインスタンスからは、 list クラスの addFirst, removeFirst などを
利用不可としたいのですが、どうすればいいのでしょうか?

: public list と継承するともちろんダメです。
: private list と継承すると push の中で呼んでいる addFirst が使えなくなってしまいます。

どうすればいいのでしょうか?

966 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 11:47:52.19 ID:1LiDvq+rd.net]
protect

967 名前:デフォルトの名無しさん [2018/06/01(金) 11:55:31.26 .net]
friend

968 名前:デフォルトの名無しさん [2018/06/01(金) 11:55:48.39 ID:uCsHgk1n0.net]
・stack : protected listとして、必要なメンバをstackで明示的に公開する。
  ・listとstackのポインタに互換性がなくなる。



969 名前:デフォルトの名無しさん [2018/06/01(金) 11:58:45.22 ID:uCsHgk1n0.net]
・assert、throw等で警告するだけのaddFirst、removeFirstをstack側に作りオーバーライドし、規約で使うなと言っておく。
  ・非常にダサい。

970 名前:デフォルトの名無しさん [2018/06/01(金) 12:00:33.78 ID:uCsHgk1n0.net]
・基底クラスbasic_listを設け、そこからlistとstackを別に派生する。

971 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 12:12:54.27 ID:SICoZSIN0.net]
>>935
釣りか?
MSYSがあるからなんとか我慢して作業できるが
仕事以外でそんな苦痛を受けながらプログラミングなんかしたくはない

972 名前:デフォルトの名無しさん [2018/06/01(金) 12:31:43.05 ID:uCsHgk1n0.net]
>>944
wslでおk。

973 名前:デフォルトの名無しさん [2018/06/01(金) 12:33:20.56 ID:uCsHgk1n0.net]
wslを有効にしてコルタナにウブンツと言えばすぐ使えます。

974 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 12:41:08.30 ID:SICoZSIN0.net]
wslでWindowsネイティブなバイナリ作れんの?

975 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 12:43:01.01 ID:Iz+jFShBM.net]
>>944
> 仕事以外でそんな苦痛
でもどんな苦痛なのかは書けない w

976 名前:デフォルトの名無しさん [2018/06/01(金) 12:44:36.05 ID:uCsHgk1n0.net]
さあどうだろ?
Linux側からWindowsのファイルは読めるけど。
環境設定が大変そうだな。
逆にWindows側からLinuxのファイルを直接変更したらだめらしい。

977 名前:デフォルトの名無しさん [2018/06/01(金) 12:47:41.68 ID:uCsHgk1n0.net]
俺のおすすめの使い方は、Windowsバイナリはcl、Linuxバイナリはwsl上のgccで作る。
開発環境はVisual Studio2017、CMakeプロジェクトを使う。
これだけでWindowsとLinux両方対応できる。

978 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 12:51:07.74 ID:SICoZSIN0.net]
>>950
それ良さそうだな
今度試してみる



979 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 13:01:33.50 ID:sIQxQP9sa.net]
>>939-943

ありがとうございました。

Macを使っている人はいませんか?
コンピュータサイエンティストって大抵Macのノートパソコンを使っているイメージがあります。

980 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 13:11:39.88 ID:pUOZzX0iM.net]
>>952
mac使ったところでmacしか使えないだけ
本物になりたいならシェアが高いウインドゥスを使え
もしくはLinux

981 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 13:29:21.95 ID:A9MSzynoM.net]
>>944
別に補陀落渡海しても良いのよ

982 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 13:30:34.27 ID:STCtC+aF0.net]
>>952
Macの内部はUnixだから

983 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 16:26:14.37 ID:WJ5uQBEIM.net]
>>952
念の為、標準ライブラリにlistもstackもあるからね。
あと標準ライブラリのlistは継承して使えるように設計されてないからね

984 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 18:47:58.65 ID:U3fjUVmpd.net]
リスト構造のスタックなんて簡単なんだからゼロから作っちゃえば?

985 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 18:52:33.22 ID:U3fjUVmpd.net]
push pop size
copy move swap constructor destructor
くらいでしょ使うの
片方向でもいいだろうし

986 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 19:38:34.27 ID:nSTFCyDP0.net]
stackはlistではないし継承は間違ってるわな

987 名前:デフォルトの名無しさん [2018/06/01(金) 19:48:21.87 ID:uCsHgk1n0.net]
俺、リストツリーっていうの考えたんだけど、聞きたい?

988 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 19:58:07.59 ID:U3fjUVmpd.net]
>>959
頭が硬いやつはソフトに向いてない



989 名前:デフォルトの名無しさん [2018/06/01(金) 20:19:59.69 ID:sIQxQP9sa.net]
>>953
>>955

ありがとうございました。

>>956-959

実は、

最近出版された岩沼宏冶他著『データ構造とアルゴリズム』(コロナ社)
という本にスタックとキューのそのような実装が書いてあるんです。
まず連結リストをテンプレートを使って実装しています。

その関係で質問しました。

まえがきに「本書の前半ではC++言語での実装コードを示すが、これは
初学者によいコードを読ませることが目的であり、Art of Programmingに
つながるような解説を付記するように努力する。」と書いてあります。

990 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 21:27:36.17 ID:naL+ZRGN0.net]
下手が伝染るから、クヌースを取り寄せしたほうが良いぞ

991 名前: mailto:sage [2018/06/01(金) 21:36:56.16 ID:/qAuBE/I0.net]
>>938
私なら委譲を使います

992 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 21:52:15.80 ID:eT4/jjIPM.net]
>>933
どんな用途を想定してるの?

993 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 01:50:36.43 ID:z1beHaLa0.net]
>>965
横レスだけど複数スレッドがあったとき
・どれかの終了を待つならjoinでは無理
・全ての終了を待つなら適当な順でjoin
というだけのことでは

994 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 07:25:22.85 ID:uqsytqRM0.net]
>>938
そういうことをやるなっていうのが「リスコフの置換原則」

995 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 07:40:27.42 ID:SH+PTz7E0.net]
「外から見えるインターフェースが変わらなければ
内部の具体的な実装がまったくの別物に変わっても使うのに支障ない」


996 名前:いうオブジェクト指向のカプセル化だっけ、あのあたりの教材じゃなかろうか。

それと継承のアクセス制御の使い方。
[]
[ここ壊れてます]

997 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 11:23:31.53 ID:SH+PTz7E0.net]
派生クラスのアクセス制御、と書くべきだったかな。
意味は通じると思うけど、用語の使い方に厳しい人もいる故。

998 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 13:02:49.13 ID:x6PfuSbY0.net]
>>932
言葉足らずだったスマン
スレッドハンドルの配列があったとして、[i]についてjoinしたら[i]を再利用できる(再びスレッドをcreateしなおせば良い
、の意味

joinせずとも済むやり方もあるが、
(「重い処理かつ終了に時間が要するスレッド」の関数本体をそのままスレッドにするのではなしに、
普段イベントを待ち、イベントが来たら「重い処理かつ終了に時間が要するスレッド」の関数本体を普通にcallし、そいつがreturnしてきたら
 再びイベントを待つ、というループするスレッドとしてwrapすれば良い、等
結局「重い処理かつ終了に時間が要するスレッド」が使っていた資源が開放されたことを論理的に知る必要からは逃れられず、
一番簡単なのがjoinですよという意味で>>922ではjoinと言ったので察してホスイ、



999 名前:デフォルトの名無しさん [2018/06/02(土) 17:26:29.14 ID:RQ4rJlvL0.net]
ほむほむ、ところでgtestとBoost.Testはどっちが良いですかな?

1000 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 18:24:16.97 ID:gfv0Z2yCa.net]
初心者脱出したいから課題くれ

1001 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 20:26:24.96 ID:g8+eu/OT0.net]
>>972
自分でこれまで勉強した範囲で疑問なり興味なり沸いてきて、あれこれコード書いて試して見ようとしたことは無かったの?
もし全くないのならもう諦めた方がいい。

1002 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 23:46:44.76 ID:D70hzHzDd.net]
>>972
純粋な言語部分
プリプロセッサ
標準ライブラリ
特定のOS, 特定のライブラリ
組み込み

どの辺の課題?

1003 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 23:58:49.35 ID:/T91IteZ0.net]
「計算機プログラムの構造と解釈」(SICP)を読んで演習課題を解いたら良い

1004 名前: mailto:sage [2018/06/04(月) 19:13:33.43 ID:gbEnuF2j0.net]
>>975
まだ scheme 手習いが終わっていないのです(泣)

1005 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 22:04:43.09 ID:2Ea3o2oY0.net]
リトルインディアン、ビッグインディアンも教えない職場があるんだな。

おっさん、びっくりしたわ。

1006 名前:デフォルトの名無しさん [2018/06/06(水) 22:13:02.59 ID:JW9lzKor0.net]
>>977
周知のこととして扱われているのかもしれませんね。
私は学校で教わりました。

1007 名前:デフォルトの名無しさん [2018/06/06(水) 22:41:41.43 .net]
>>977
インディアンかー
俺も教わった覚えないな

1008 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 23:17:12.31 ID:jNE6zLei0.net]
One little, two little, three little Indians



1009 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 23:33:53.26 ID:m+Bnnm4Z0.net]
エンディアンなのかインディアンだったかいつも忘れる
口語は混ざる

1010 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 23:36:43.24 ID:zexNX0En0.net]
>>979
インディアンは習ったろ

1011 名前:デフォルトの名無しさん [2018/06/06(水) 23:48:14.36 .net]
>>982
ネイティブアメリカンなら習ったけど🙄

1012 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 23:48:33.17 ID:Ne6bz6Er0.net]
ガリバー旅行記はいつどこで習うんだろう

1013 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 06:56:59.11 ID:u4DD79290.net]
「リトル・エンディアン」「ビッグ・エンディアン」て用語は
『ガリバー旅行記』が由来、という情報が載ってるサイトで、
主人公が漂着した小人の国、巨人の国のエピソードから…、とか
書いてあるのを見たことがある。ネタだったのかも知れないけど。

1014 名前: mailto:sage [2018/06/07(木) 08:03:30.91 ID:twFjtnTk0.net]
>>985
それはほんと、小人国での卵の割り方にちなみます

1015 名前:デフォルトの名無しさん [2018/06/07(木) 08:17:13.03 .net]
>>986
ニホンゴムズカシイネ^^

1016 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 11:07:30.43 ID:texCzkEwa.net]
>>977
今どきバイトオーダー意識するようなプログラム書くような職場じゃなきゃ教えないよ
アライメントなんかも同様

1017 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 11:22:48.86 ID:W9Xn18jEd.net]
インディアンを教える職場って
どんな職場だよ

1018 名前:デフォルトの名無しさん [2018/06/07(木) 11:49:27.36 ID:ZMsL/8Fsd.net]
だってオラはSEだから



1019 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 12:38:00.08 ID:pGQiQE2u0.net]
SEなら尚更知っておかないと
日本はなんちゃってSEばっかだもんなw

1020 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 13:14:35.77 ID:W9Xn18jEd.net]
SEとインディアンの関係は?

1021 名前:985 mailto:sage [2018/06/07(木) 13:15:06.93 ID:u4DD79290.net]
>>986 調べたら小人同士の戦争の原因なのね。巨人国は関係ないな。
実は空の国の「学者の無意味な論争」の一例だと思い込んでいたんだわ。

>>989 「ウチはCのコーディングスタイルとしてAT&T式を基本とします」
ってところはあるかも知れん。

1022 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 20:44:47.09 ID:BA7hChNz0.net]
>>988
貴様が知る必要はない!

1023 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 20:48:11.43 ID:DJdTp6lo0.net]
何でもネットに繋がらなきゃならないこの時代にhtolやltohを避けて通れるもんなのか?
PHPしか触らないWeb屋ならともかくここC++スレだぞ

1024 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 21:46:11.03 ID:XXEPBZnxM.net]
今時C++と言えどhtol()とかltoh()なんて低レイヤーの関数使うことなんて滅多にないだろ

1025 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 21:50:55.26 ID:gS6wfz1ca.net]
>>995
ソフトウェアがなんでもかんでもネットワークに繋ぐ必要があると思ってるの?ここC++スレだぞ

1026 名前:デフォルトの名無しさん [2018/06/07(木) 22:31:28.79 .net]
C++使うくらいだからXMLとかJSON使うんだろ

1027 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 23:10:47.05 ID:C4iY9p8E0.net]
>>998
utf16はどうしたらいいの?

1028 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 23:16:41.18 ID:B+7Xk0Ks0.net]
続きはwebで



1029 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 68日 2時間 56分 35秒

1030 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<282KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef