[過去ログ] C++相談室 part132 (941レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(1): 転載ダメ (ワッチョイ faeb-wbjw) 2017/10/10(火)00:11 ID:nc/5PI4P0(1/2) AAS
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part131
2chスレ:tech
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.101【環境依存OK】
省7
2(1): (ワッチョイ aaeb-wbjw) 2017/10/10(火)00:12 ID:nc/5PI4P0(2/2) AAS
散々スレ散らかしておいて挙句誰もスレ立てないとか何なんだよおい
3: (ワッチョイ fd79-zkbM) 2017/10/10(火)00:17 ID:UbDU2trc0(1) AAS
>>1乙
4: (ワッチョイ da34-HxEp) 2017/10/10(火)00:20 ID:QENrkQd80(1) AAS
swap(a,1);
5: (ワッチョイ dabd-mvC5) 2017/10/10(火)00:34 ID:xPjXx2fY0(1/2) AAS
int&& x=1;
乙 << x;
6(1): (ワッチョイ dabd-mvC5) 2017/10/10(火)00:37 ID:xPjXx2fY0(2/2) AAS
swap(T& x, T& y) { T tmp = x; x = y; y = tmp; }を
swap(T&&x, T&& y) { T&& tmp = x; x = y; y = tmp; }とかやったら死ぬ気しかしない
7(1): (ワッチョイ dacf-lNhP) 2017/10/10(火)02:42 ID:wYOMkRRU0(1) AAS
2 名前:デフォルトの名無しさん (ワッチョイ bf54-lR6P)[sage] 投稿日:2017/03/31(金) 16:52:18.52 ID:CoeIAoH10
STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
省5
8: (ワッチョイ 5a12-wbjw) 2017/10/10(火)12:31 ID:EzEz7dGm0(1) AAS
テンプレに
>>970が建ててね
辺りを追加しとこうぜ
9: (スプッッ Sdda-Qcsg) 2017/10/10(火)15:13 ID:S8JfuHhfd(1/2) AAS
開発的なお話で単純に構造体の要素を一つ追加するって危険な行為でしょうか?
10(1): (ブーイモ MMfa-0mrS) 2017/10/10(火)15:40 ID:NgeFZ2kOM(1) AAS
質問がふわふわし過ぎ
そんなんじゃまともな回答は無理
個人的には
メンバをひとつ追加する程度で
破綻のリスクが増えるというなら
それは元々破綻していて
表面化していないだけだろうと思うが
11(1): (スプッッ Sdda-Qcsg) 2017/10/10(火)16:32 ID:S8JfuHhfd(2/2) AAS
>>10
ふわふわしすぎてました
意味合いとしては答えてくれてることで合致してます
メンバ変数を一つ追加することでその他への影響は大きいでしょうか?って意味でした
12: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c) 2017/10/10(火)16:49 ID:RmsAElXwd(1/5) AAS
>>11
メンバー変数を増やすと、構造体のサイズが増大する。また、変数の追加する場所によっては、メンバーの相対的な位置が変化する可能性がある。
よって、その構造体のバイナリーインターフェースに依存するプログラムは死亡する可能性がある。
13: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c) 2017/10/10(火)17:03 ID:RmsAElXwd(2/5) AAS
例えば、構造体データをバイナリーとしてファイルに出力していたら、サイズの増えた構造体では正しく読み取れない可能性がある。
構造体のメンバーの相対的位置が変化したら、古い構造体を使っている他のプログラムとは相性が悪くなる。
14(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c) 2017/10/10(火)17:13 ID:RmsAElXwd(3/5) AAS
Windows APIでは、構造体をバージョン管理して、構造体のサイズで処理を変えたりしている。
15(1): はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ae6f-XSap) 2017/10/10(火)20:42 ID:ISsQMV5w0(1) AAS
>>14
たまに半端な位置に「予約」とか説明されてるメンバがあったりするよね。
あれはバイナリサイズが変わると困るような理由があるからなんかなぁ。
まあ、たいした理由もなくやっちゃって互換性ゆえに変えられなくなったとかだろうけど。
16: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c) 2017/10/10(火)22:10 ID:RmsAElXwd(4/5) AAS
>>15
位置やサイズが違うとバグのもと。
昔はよく
#include <pshpack1.h>
...
#include <poppack.h>
を書いたものだ。
17: (ドコグロ MM0d-xGYA) 2017/10/10(火)22:48 ID:muYZ22/tM(1) AAS
膝を撃ち抜く自由も良し悪しだな。
18(2): (ワッチョイ 6e8a-v8iM) 2017/10/10(火)23:50 ID:4EEs5NsC0(1) AAS
cURLを限りなくスペックの低い組み込み機器に入れようとしてるところで問題が起きました
・処理能力が低い
cURLをsystem関数でコマンドライン実行しようとすると、
呼び出す側の処理がCPU50%平均的に食っている+cURLもCPU喰うでまともに通信が出来ません
呼び出す側を落とすとcURLの処理速度は改善されるから
確定でCPUの食い合いが原因ってのもわかっている
対策として下記二つが出たのだけど
・呼び出す側をcURLが実行中はsleepにする
・cURLを実行ファイルで取り込むのではなくプログラミングベースで取り込む
省3
19(2): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c) 2017/10/10(火)23:55 ID:RmsAElXwd(5/5) AAS
>>18
なぜかうまくいかないときのエラーメッセージは何だ?
20(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c) 2017/10/11(水)00:02 ID:qOpcxgfAd(1/3) AAS
スペックが低いなら、そもそもマルチスレッドが未実装の可能性がある。
ならばsleepは無意味ということになるかも知れない。
21: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c) 2017/10/11(水)00:06 ID:qOpcxgfAd(2/3) AAS
スペックが低すぎると、ANSI Cなどの規格に準拠してない恐れがある。
マシンとコンパイラーのマニュアルを確認して、準拠状況を確認しろ。
22(1): はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ae6f-XSap) 2017/10/11(水)02:03 ID:xVJHolx50(1/3) AAS
>>18
状況がよくわからんなぁ。
system 関数自体は普通は同期的だよね?
スレッドを分けて system 関数を実行した上で、
メインプロセスと cURL がプロセス間通信
23: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ae6f-XSap) 2017/10/11(水)02:03 ID:xVJHolx50(2/3) AAS
してるってことかな。
(すまん、ミスって変なところで投稿してしもうた)
24: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ae6f-XSap) 2017/10/11(水)02:18 ID:xVJHolx50(3/3) AAS
この件に関しては >>19 の疑問が当然だなぁ。
クロスビルドでこの手の問題がありがちなのは、
ライブラリのサーチパスとかかな。
ライブラリが見つからんとかメッセージ出てないかね?
25(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c) 2017/10/11(水)02:27 ID:qOpcxgfAd(3/3) AAS
外部リンク[html]:www.ne.jp
forkを使えば、プロセスを分けることができるらしい。
26: (ワッチョイ 6e8a-v8iM) 2017/10/11(水)06:22 ID:Fgfx0EWk0(1) AAS
>>19
undefined 系統のエラーが沢山出る
arm-linux-gnueabi-gccを使ってコンパイルするとそうなる
ただgccだとエラーは起きない。ただi386系になるから実行環境で動かない
クロスコンパイルでcURLの単体がARMにできているから
.aファイルもARM担っていると思っているのだけどもなっていないのだろうか
objdump実行でARMって文字を確認したからARMだと思いたいとこではあるが…
エラー時の実行例
arm-linux-gnueabi-gcc test.c -o test.out -LXXXXXX -lcurl
通るけどi386系で実行環境で実行できない
省14
27: (ワッチョイ dabd-mvC5) 2017/10/11(水)07:22 ID:pdXZ47r80(1/4) AAS
メンバ変数が1個増えたぐらいで崩壊するのは
対外的にはカプセル化がうまくいっていない例、
内部的にはクラスのふるまいに激甚な影響を与えるような重大なメンバ変数の追加が
後から必要になるというのはマズーな設計の例、
28: (ワッチョイ dabd-mvC5) 2017/10/11(水)07:26 ID:pdXZ47r80(2/4) AAS
フォークは低速な外部記憶からプログラムコードを新たにロードする手間が無い分高速な可能性が微レ存、
フォーク先とフォーク元でコードが共有されるためメモリ使用効率も多少UP、
あとサーバとクライアントの関係にある処理を(無理矢理)1本のプログラムとして書けるので
開発環境のリソース自体厳しく制限されていた昔はややうれしかったのかも知れん、、
29: (ワッチョイ dabd-mvC5) 2017/10/11(水)07:54 ID:pdXZ47r80(3/4) AAS
ていうか根本的な疑問として
CPUが低速であるとわかっていながら応答速度の要求があるタスクの一環に
プロセスの起動を含めるのってどうなんじゃ…
(プロセスやスレッドの起動は低廉なOSでは一般にリアルタイム性が全く最強度で担保されない
応答速度の要求が見積もれていなかったんだとすると極めてご愁傷様な話…
30: (ワッチョイ 0db3-XSap) 2017/10/11(水)20:57 ID:gwIT2xqO0(1) AAS
%%%%4NEL%%%%
000-SAV-&1.0888214%ML<\47MBL%0.2\MSSSS4.213>
1.8882/%B/%SB/<\2/7BL\%\%B!B%47L%Si72B>%10.2%\
002%\B%===>>>52.B<\rbc/2.8>>\7B<<\7LB>>\72S\<%\42%><\br>001BYON$\%7L2%3.33GHz>>>2.3GHz<\br>
41.B%LB%"<<%11.6$%><<\86.1B>>2LB>"B???S3>>71$-?>6%<\br>
082@<\7L@@<\br>
\LOOP>0<1Entra
31: (ワッチョイ dabd-mvC5) 2017/10/11(水)22:47 ID:pdXZ47r80(4/4) AAS
つかだいたいやるべきこと:
1. プログラムを全般的に速くする
2. (今から可能ならば)要求元とハンドシェークして必要なだけ待ってもらうしくみにする
3. 間に合わせたい処理の優先度を間に合っている処理より上げる
(できればワーストケースでの応答時間の上限を担保する
>>20
sleepしてもスレッドコンテキストが切り替わらないOSというのはさすがに都市伝説なんじゃ…
32: (ワッチョイ 1334-7k5d) 2017/10/12(木)05:46 ID:4g8heiq80(1) AAS
ハンドシェイカー?時間の支配者?
33: (ワッチョイ 13bd-ZX73) 2017/10/12(木)07:21 ID:K6ixfN2F0(1) AAS
訂正
×: プログラムを全般的に速くする
●: プログラムのボトルネック箇所を探して速くする
この場合プロセスの起動がボトルネックなのはまちがいなさげなのでそこを速くなるように修正汁、
34: (ワッチョイ 0b87-zJYH) 2017/10/12(木)09:09 ID:VRKsQXfP0(1) AAS
汁?
35: (ワッチョイ 0b32-MWTH) 2017/10/12(木)11:20 ID:PQ1d1y2O0(1) AAS
汁=しろ
2ch地方の方言たい
36: (ワッチョイ b3eb-B6a6) 2017/10/12(木)12:07 ID:GDIRJBKR0(1) AAS
汁を知らないのにも今時汁を見られたのにも戸惑う
37: (ワッチョイ 1183-B6a6) 2017/10/12(木)13:46 ID:CaCBhzNq0(1) AAS
cURLでググったらlibcurlってのがある。こっち使えばすべて解決する話じゃないの。
そもそもC++スレなのにlib使わずコマンド経由する理由が謎。
38(1): (ガックシ 06eb-HijE) 2017/10/12(木)14:05 ID:OhN0e73F6(1/3) AAS
ウンコの画像を生成するプログラムの作り方を教えて下さい
39: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd33-WP5G) 2017/10/12(木)14:27 ID:loBt1/dEd(1/3) AAS
>>38
板違い。CG板へ行け。
40: (ガックシ 06eb-HijE) 2017/10/12(木)14:29 ID:OhN0e73F6(2/3) AAS
お願いします!
41: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd33-WP5G) 2017/10/12(木)14:44 ID:loBt1/dEd(2/3) AAS
MMD、Blender、メタセコイアなど好きなヤツを使ってオブジェクトを三次元モデリングしろ。
ボーンを設定して、思ったとおりに変形できるようにしろ。
レンダリングして、画像として保存しろ。
42: (ガックシ 06eb-HijE) 2017/10/12(木)14:45 ID:OhN0e73F6(3/3) AAS
線を引いて多様なウンコ画像を生成するプログラムお願いします!
43: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd33-WP5G) 2017/10/12(木)14:49 ID:loBt1/dEd(3/3) AAS
基本オブジェクトをいくつか作れ。
基本オブジェクトを変形し、組み合わせれば、求める画像がレンダリングできる。
重力とボーンを考慮すれば自然な形になる。
44: (ワッチョイ b3eb-qUyi) 2017/10/12(木)14:52 ID:y2YbOREJ0(1) AAS
AIがウンコ画像を識別できるなら、逆にウンコ画像を生成することもできるのではないか?
これを応用するとエロ画像を識別できるAIにエロ画像を生成させることもできるのでは?
45: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd33-WP5G) 2017/10/12(木)16:00 ID:Q2Fs2fOZd(1) AAS
まずは、MMD、Blender、メタセコイアのどれかを選んでダウンロード&インストールしろ。
46: (ワッチョイ 99b3-BSx0) 2017/10/12(木)19:02 ID:eq5Al9lp0(1) AAS
>ボーンを設定して、思ったとおりに変形
要らんだろ・・・・w
アラレちゃんにつんつんでもさせるのかよ
47: (ワッチョイ fb8a-ECK6) 2017/10/12(木)21:58 ID:9n97WZ1N0(1/3) AAS
cURLの起動云々の話に答えてくれた人ありがとう
応答速度についてはめちゃくちゃ遅いってレベルにならなければ問題なく
プロセスを立ち上げるような処理を入れても問題ないとの判断
極端な話10秒で終わっていたのが20秒になりましたぐらいなら問題なく、これが600秒かかりますとかなら問題あった
実際にプロセスを立ち上げてみて処理させてみたけど
CPUの食い合いがなければこの問題は解決できていると考えている
処理についてsleep入れるのは無理そうってレスしたけども
ソースコードを追ってみたらpollなどではなくwhile&usleepでの待機が存在していて
CPU喰ってたからこいつをちゃんと制御すれば問題なさそうってなりました
考えてくれた人ありがとう
省1
48(2): (ワッチョイ 8b80-hLkI) 2017/10/12(木)22:19 ID:BE/Y4M/40(1) AAS
>while&usleep
時間の掛かる、I/O で、busy wait する奴って、素人だろ
49: (ワッチョイ fb8a-ECK6) 2017/10/12(木)22:24 ID:9n97WZ1N0(2/3) AAS
1. PCA→PCBへのインストールで新規にcURLの実行形式ファイルを入れることになった
2. インストールが完了して再起動をしたら今後はcURLをsystem関数で実行して通信する
この状況下でダウングレードを試みようと考えた時に
3. PCA→PCBへのダウングレード(インストール)をcURLを用いてする
4. インストールが完了して再起動をしたら今後は独自プロトコルでの通信に戻る
こういう状況になった。
その時に、cURLを削除するタイミングが見付からなくて今困っている。
3を実行したときに判断しようとしたのだけどダウングレードだと判断するに至る材料がない。
ファイルを一個ずつ指定して送信して・・・の繰り返しだからリストにcURLがあるかないかも判断できずってなっている
50: (ワッチョイ fb8a-ECK6) 2017/10/12(木)22:25 ID:9n97WZ1N0(3/3) AAS
書いてて気づいたけどこれC++の話じゃないって
もうスレチだと気づいたので無視してください
スレ汚しすまん
51: (ワッチョイ 13bd-ZX73) 2017/10/13(金)05:33 ID:SZtyoNBi0(1/4) AAS
>>48
なるほろ
優先度の低いスレッドのビジーループは必ずしも悪ではないと思っていたが
低速なI/O命令を含むビジーループだと応答性能のドブ捨て度が増すのか、
52(2): (ワッチョイ 0b3f-MWTH) 2017/10/13(金)06:42 ID:/fw1jTt60(1/2) AAS
usleepしてるんなら優先度関係ないだろ
誰だ変なこと言ってるのは
53: (ワッチョイ 8b80-hLkI) 2017/10/13(金)07:21 ID:JHJOvcP00(1/3) AAS
ネット回線なんか、秒の単位だから、busy wait の範囲を超えてる
busy wait は、せいぜい、1ms 以下とか、
マイコン・リアルタイムOS での話
54: (ワッチョイ 0b3f-MWTH) 2017/10/13(金)10:38 ID:/fw1jTt60(2/2) AAS
もしかしてusleepがビジーウエイトで実装されているとでも思っているのか
55: (ワッチョイ 8b80-hLkI) 2017/10/13(金)10:41 ID:JHJOvcP00(2/3) AAS
CPU 使用率が、100% になってたんじゃないのか?
56(1): (ワッチョイ 13bd-ZX73) 2017/10/13(金)22:27 ID:SZtyoNBi0(2/4) AAS
>>52
あるわ;
優先度が高いスレッドにビジーループされるとそいつがsleepしてくれる間隔が
全スレッドの応答時間の下限になってしまう
優先度が低いスレッドのビジーループならsleepを待たずに割り込めるからそこまで甚大にならない
ただしI/O命令があってそいつが数百マイクロ棒かかると
より高いスレッドであってもワーストケースの応答時間が数百マイクロ棒に劣化する
57: (ワッチョイ 13bd-ZX73) 2017/10/13(金)22:29 ID:SZtyoNBi0(3/4) AAS
usleepは普通電気が無駄なのでhaltでもしてハードウェアに割り込みを待たせるが
マルチコア対応OSやったら気分次第でスピンロックでビージループすることもあるかも試練、
58: (ワッチョイ 13bd-ZX73) 2017/10/13(金)22:46 ID:SZtyoNBi0(4/4) AAS
スマン
>usleepは普通電気が無駄なのでhaltでもして
というのは他に実行権待ちのスレッドが無かった場合の話ェ、
59: (ワッチョイ 8b80-hLkI) 2017/10/13(金)23:08 ID:JHJOvcP00(3/3) AAS
OS は、たぶん優先度を上下させるから、要注意。
優先度の低いスレッドでも、カーネルモードに入ると、優先度を上げるのじゃ?
優先度の低いスレッドのカーネルモードが、
優先度の高いスレッドのユーザーモードよりも、優先されるかも?
ただ、CPU 使用率が、100% と表示されていても、
本当は、CPUを使っていない場合もあるとか、聞いた事もある
60: (ワッチョイ 1904-Y3bU) 2017/10/14(土)02:15 ID:hYPsSpip0(1) AAS
ウニファイドコールシンタックスはまだか!?
61(1): 52 (ワッチョイ 0bf0-MWTH) 2017/10/14(土)07:10 ID:F19RwFTi0(1) AAS
>>56
おまえさん、やっぱり前提がおかしいな
> 優先度が高いスレッドにビジーループされると
そんな話してねえぞ
usleepしてるんならと言ったろ
なんでビジーループが出てくるんだよ
62: (ワッチョイ 13bd-ZX73) 2017/10/14(土)07:17 ID:nAGT83AF0(1) AAS
>>61
知らん国語の苦情なら>>48に家、
63(1): (スプッッ Sd65-E+Ow) 2017/10/15(日)15:18 ID:6+blsnLXd(1) AAS
ftpサーバを立てられないからプログラミングまで進まない悲しい
530エラーってなんでえええ
IIS使いにくい
64(1): (ワッチョイ fb8a-ECK6) 2017/10/15(日)15:51 ID:NUNtAlCN0(1) AAS
俺もIISでFTPSサーバ立てられなくて困ってるわ
IIS思った以上に使いにくい
IISでオレオレ証明書を作成して
FTPS通信をcURLで確立したいだけなのに
本当にできるのだろうか
65: (ワッチョイ d3f9-QUVh) 2017/10/15(日)20:46 ID:jTAoV9hu0(1) AAS
>>63,64
まあそういう話は適切なスレに行ってしてくるといいぞ
66(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd33-WP5G) 2017/10/15(日)20:50 ID:3VVV/TO4d(1) AAS
セキュリティソフトやファイアウォールが通信の邪魔をしている場合があるから、気を付けな。
67: (ワッチョイ 138a-wUXQ) [sage釣] 2017/10/15(日)21:16 ID:TMBfPksM0(1) AAS
xamppでは出来ないんだっけ
68: (ワッチョイ 13d2-NIAW) 2017/10/15(日)21:45 ID:bPqYmEmS0(1) AAS
なんか難しい設定あったかな
SFTPできないならありそうだが
69: (ワッチョイ d108-MWTH) 2017/10/15(日)21:49 ID:DZC0OlhV0(1) AAS
>>66
そういう実験はまずVMでやれ、だよな
完全に無防備なら本来どうなっていたという話からクリアして
セキュリティの入った環境で引っかかった場合に切り分けをしながら、と
70: (ワッチョイ 1183-B6a6) 2017/10/15(日)23:00 ID:9R+c2v2L0(1/2) AAS
usleepの実装ってどんな感じ? どれくらいのμ秒の精度出んの?
ループ中に頻繁に読んでいいものなのか?
71(1): (ワッチョイ 1904-Y3bU) 2017/10/15(日)23:29 ID:lsjR8/6b0(1) AAS
色々あるでしょ。
CPUが時計対応ならそっち見るだろうし、最悪ビジーループ。
不安ならchronoで寝るとかもあるぞ。
72: (ワッチョイ 1183-B6a6) 2017/10/15(日)23:39 ID:9R+c2v2L0(2/2) AAS
ググると最低4msとか出てくるな。MSみたいに最初からミリ秒単位にしとけば変な誤用されないものを。
73(1): (ワッチョイ 8be8-B6a6) 2017/10/16(月)12:13 ID:iBTaJQF10(1) AAS
ガベージコレクションがないのに、安全なオブジェクト指向プログラミングなんてできるんですか?
74: (ワッチョイ 197f-BSx0) 2017/10/16(月)12:22 ID:VYCnmYA70(1) AAS
デ、デストラクタがあるから
75: (ワッチョイ 1334-7k5d) 2017/10/16(月)12:25 ID:CHd6usgT0(1) AAS
ガーベージコレクションも含めて実装するのが真のC++グラマーやでアマチャン
76(1): (ドコグロ MM7d-6xzC) 2017/10/16(月)12:40 ID:Ou6sbmAQM(1) AAS
GC付きスマポ、誰か作らんかね。
77: (ワッチョイ b3eb-89ZN) 2017/10/16(月)14:41 ID:cwpW48EL0(1) AAS
D言語「俺を使えばいいじゃない?」
78: (ブーイモ MM0d-Hl19) 2017/10/16(月)20:49 ID:EBMdtAZpM(1) AAS
cli「もしかして俺の時代?」
79: (ドコグロ MM63-itUa) 2017/10/16(月)20:54 ID:D6Ozm2TBM(1) AAS
>>76
誰が使うんだよ?
80: (ワッチョイ 8b8a-qami) 2017/10/16(月)22:26 ID:uaY9uFi30(1) AAS
>>73
RAIIを徹底するのがC++流リソース管理法
いつ走るかわからないGCなんかよりずっとcontrollable
81(1): (ワッチョイ 41a5-Yjam) 2017/10/16(月)23:19 ID:7Byc8Q4r0(1) AAS
GC要求が発生する前にプロセスが完了すりゃいいだけだろ
82: (ワッチョイ 1183-B6a6) 2017/10/17(火)00:26 ID:hVetZd8l0(1) AAS
最近は異常なほど高級言語志向が強いな。
83(1): (ドコグロ MM33-itUa) 2017/10/17(火)06:56 ID:BJIvhub9M(1) AAS
>>81
それGC要らんだろ w
84(1): (スプッッ Sd65-E+Ow) 2017/10/18(水)06:24 ID:syxw9nR/d(1) AAS
スレッド間の変数の共有って
・pthread時に引数与える
・シングルトン
・グローバル変数
これ以外に何かあるかな?
85(1): (ワッチョイ 8bab-EwbT) 2017/10/18(水)08:44 ID:qJuCX/Qy0(1/4) AAS
C++を最近学び始めた者なんですが
ファイルへの保存で質問があるんですが良いでしょうか
テキストに保存するのと、バイナリに保存するので
文字列を保存するとバイナリが僅かに小さくなるんですが
vectorを保存すると逆にバイナリのほうがサイズが大きくなるのは
普通のことなんでしょうか?
86(3): (ワッチョイ 8bab-EwbT) 2017/10/18(水)08:46 ID:qJuCX/Qy0(2/4) AAS
vectorの二次元配列を、forの二重ループで
テキストへは outputfile << data[i][j] << "\t";
バイナリへは outputfile.write((const char*)&data[i][j], sizeof(data[i][j]));
で書き込んでみてるのですが・・・・・・
100×100の配列を書き込むと
テキストが29キロバイト、バイナリが40キロバイトに
配列を大きくすればするほどバイナリが大きくなってしまいます
87: (ブーイモ MM5d-Hl19) 2017/10/18(水)09:34 ID:lDu9kW4oM(1) AAS
>>84
同一アドレス空間である以上、アドレスさえ取れればどんな方法でも共有できると思うよ。
88: (ワッチョイ 1334-7k5d) 2017/10/18(水)09:40 ID:+1GvmKA80(1) AAS
>>86
改行かな?
89: (ワッチョイ 138a-13gS) 2017/10/18(水)09:41 ID:MOIHjDBn0(1/2) AAS
>>86
どんなデータかによる。intを保存しようとしててデータが全部一桁ならバイナリの方が大きくなることもあるかもしれない。
まずキャストの使い方が間違ってるので、さっくり消してみよう。
次に読み取り部分を作って正常に読み取れるか見てみよう。
90: (ワッチョイ 912d-0Wb2) 2017/10/18(水)09:45 ID:4annDJqp0(1/2) AAS
>>85
dataの型が解ればもう少し推測できるけど
char data[100][100][MAX_STR_LEN];
だとして
data[0][0] = "data\0qwe"; // "qwe"はゴミ
みたいにnull terminated後の不要なゴミも書き込んでるんじゃない?
バイナリエディタでバイナリファイル覗いてみれば解るかと
サイズから推測するとMAX_STR_LENは4かな
91(1): (ワッチョイ 138a-13gS) 2017/10/18(水)09:57 ID:MOIHjDBn0(2/2) AAS
あ、ofstreamのwriteって引数const char*なのか
ゴメン間違ってるってほどじゃないわ
せいぜいC++っぽくreinterpret_castに変えるくらいか
92: (ブーイモ MM0d-qY8G) 2017/10/18(水)11:54 ID:hNmHHI30M(1) AAS
>>91
いや、私の誤りでした、だろ
何が間違ってるほどじゃないだ
日本語間違えるなよ
>>86
出力したテキストファイルの中身は?何か差分は無いの?
少ない情報出してここで聞くより
見た方がよっぽどわかるだろ
93(1): (ワッチョイ 8bab-EwbT) 2017/10/18(水)11:56 ID:qJuCX/Qy0(3/4) AAS
レス有難うございます。dataはintのvector二次元配列で
int a=100;
int b=100;
vector< vector<int> > data(a, vector<int>(b));
このdataに、forで
data[i][j] = rand() % 100;
の数字をいれている配列なんです
バイナリ保存したデータを、FavBinEditというものでみてみると
数字と数字のあいだに間隔があいてるので
これがサイズが大きくなってる理由なのかと思うんですが
94: (ブーイモ MM0d-uYMh) 2017/10/18(水)12:47 ID:J7UI6pACM(1) AAS
>>93
int型の100*100配列なら約40K byteなんだから、バイナリファイルは正しいと思うよ。
で、テキストも間違っているとは言いきれない。
例えば一桁の数字が多いなら、バイナリファイルより小さくなるよね?
サイズの違いはあって当然だと思うけど。
95(1): (ワッチョイ 8bab-EwbT) 2017/10/18(水)13:00 ID:qJuCX/Qy0(4/4) AAS
そういうものなのですか
ネット上に、バイナリに保存するとサイズが小さくなる
という話が多いのでそう思い込んでました
自分には関係無いような、複雑なデータを扱うと小さくなるのかな
96: (ワッチョイ 912d-0Wb2) 2017/10/18(水)13:06 ID:4annDJqp0(2/2) AAS
そういうもんですね 自分もintなら納得です
「rand() % 100」なら文字列にしたとき"0"(=0x30)から"99"(=0x3939)と2byteで収まり
"\t"を付けても 常に4byte(=sizeof(int) システム依存)より小さいですから
バイナリだと0を0x00000000, 99を0x63000000(リトルエンディアン)で保存してます
試しに「rand() % 100」を「10000」とか
"文字列にしたとき'\t'も含めて4文字を越える大きさ"にすれば
サイズが逆転するのが観察できるはずです
・扱う数字が小さいからテキストの方が短くて済んでる
・バイナリなら数字が大きく(当然intの最大値を越えないこと)なってもサイズが一定で済む
余談ながら
省2
97: (アークセー Sx45-jnAP) 2017/10/18(水)16:31 ID:8P8HMOssx(1/2) AAS
質問です。
とあるクラスのヘッダーに定義している文字列変数(CString)の文字列だけを変更し、ビルドしても、変更が反映されないのですがこれは仕様でしょうか?リビルドすると反映されます。
環境はVisualStudio2015 VC++です。
98: 97 (アークセー Sx45-jnAP) 2017/10/18(水)16:50 ID:8P8HMOssx(2/2) AAS
自己レス。最小リビルドを無効にしたら解決しました
99: (ワッチョイ 41a5-PxAS) 2017/10/18(水)20:07 ID:3bYwz/rX0(1) AAS
>>83
そう
それが肝心
100: (ブーイモ MM71-v1IO) 2017/10/19(木)12:49 ID:LAmWAPnYM(1) AAS
>>95
テキスト形式は、装飾次第で肥大化しやすいってだけだよ。
カンマやタブや改行も装飾の一部。
一桁の数字でも、スペース等で桁合わせしたら、それだけで肥大化するしね。
実際のところは、どういうフォーマットで出力してるか次第だけど。
最小桁で出力していて、rand 出力が正規分布に従うと考えれば、計算上約29k byteになるよ。
上下前次1-新書関写板覧索設栞歴
あと 841 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.732s*