次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part139
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん (ワッチョイ f65b-zn+7)
2018/10/06(土) 00:59:48.54ID:CdYUXXMG0873デフォルトの名無しさん (アウアウウー Sa39-Rqk6)
2018/12/30(日) 18:06:14.60ID:vtZx8IN+a この場合static_castは使えんの?
874>>835 (ワッチョイ 5aad-4fyn)
2018/12/30(日) 18:10:27.41ID:Q7hIiacN0875デフォルトの名無しさん (ワッチョイ 9161-h5Ay)
2018/12/30(日) 18:24:04.22ID:31DgsdhN0 >>874
>話は少し変わるんですが、>>809でクラスをnewせずに使うというのが書かれていますが、
>オブジェクトをnewせずに使うことって結構あるんでしょうか?
どちらかというと、C++では new する必要ない場合は、new しないことが
良い書き方。new は、好きなタイミングで削除したいようなオブジェクトの場合
のみ使用する。構造体やクラスのメンバの中に、別のクラスのオブジェクトが含まれている
ような場合は、new しないのが原則。
ある意味では、そのような習慣があるからこそ、C++ は効率が良いともいえる。
実は、new や malloc は、確保するサイズにかかわらず、大体 170 クロックほど
必要。delete や free と合わせると、合計 300 クロック必要となる。
一方、そのまま、new せずに「埋め込んだ」場合は、基本的に「0」クロック。
この差はとても大きなものとなることがある。
>話は少し変わるんですが、>>809でクラスをnewせずに使うというのが書かれていますが、
>オブジェクトをnewせずに使うことって結構あるんでしょうか?
どちらかというと、C++では new する必要ない場合は、new しないことが
良い書き方。new は、好きなタイミングで削除したいようなオブジェクトの場合
のみ使用する。構造体やクラスのメンバの中に、別のクラスのオブジェクトが含まれている
ような場合は、new しないのが原則。
ある意味では、そのような習慣があるからこそ、C++ は効率が良いともいえる。
実は、new や malloc は、確保するサイズにかかわらず、大体 170 クロックほど
必要。delete や free と合わせると、合計 300 クロック必要となる。
一方、そのまま、new せずに「埋め込んだ」場合は、基本的に「0」クロック。
この差はとても大きなものとなることがある。
876デフォルトの名無しさん (ワッチョイ 694e-4fyn)
2018/12/30(日) 18:27:37.01ID:bm6ZOgnS0 >>874
最初から最後まで存在し続けて、特別な終了処理が必要ないオブジェクトなら、わざわざヒープを確保して実行時に初期化する必要はないでしょ。
あと、staticなオブジェクトのコンストラクタはmain関数の前にグローバルコンストラクタから呼び出されるのだが、
これを利用して、プログラム起動時にやっておきたい初期化処理をクラス内で記述する目的に使うこともあるね。
最初から最後まで存在し続けて、特別な終了処理が必要ないオブジェクトなら、わざわざヒープを確保して実行時に初期化する必要はないでしょ。
あと、staticなオブジェクトのコンストラクタはmain関数の前にグローバルコンストラクタから呼び出されるのだが、
これを利用して、プログラム起動時にやっておきたい初期化処理をクラス内で記述する目的に使うこともあるね。
877デフォルトの名無しさん (ワッチョイ 694e-4fyn)
2018/12/30(日) 18:32:12.30ID:bm6ZOgnS0878デフォルトの名無しさん (ワッチョイ 5aad-4fyn)
2018/12/30(日) 18:32:48.87ID:Q7hIiacN0879デフォルトの名無しさん (ワッチョイ 9161-h5Ay)
2018/12/30(日) 18:55:41.08ID:31DgsdhN0 >>877
必要な場合は new しても良い。でも、クラス Cxxxの中には、文字列の CString
クラスのオブジェクトや、何らかのリストのオブジェクトが複数含まれて
いたりすることも多い。それらのメンバを全て new する場合と、埋め込み
でそのまま使う場合とでは、Cxxx をインスタンス化するときの時間に雲泥の
差が出てしまう。Cxxx が、5つのクラス・オブジェクトを含んでいた場合、
それらを new するだけで、170 * 5 クロックも余分に掛かってしまう。
この数値には、各コンストラクタの処理時間は含まれていないので。
この場合だと、全て new すると、850 クロックも余計に掛かることになる。
さらに、Cxxx オブジェクトがデストラクトされる場合には、合計で、この
1.8 倍程度の時間が new しない場合より余計に掛かることになってしまう。
必要な場合は new しても良い。でも、クラス Cxxxの中には、文字列の CString
クラスのオブジェクトや、何らかのリストのオブジェクトが複数含まれて
いたりすることも多い。それらのメンバを全て new する場合と、埋め込み
でそのまま使う場合とでは、Cxxx をインスタンス化するときの時間に雲泥の
差が出てしまう。Cxxx が、5つのクラス・オブジェクトを含んでいた場合、
それらを new するだけで、170 * 5 クロックも余分に掛かってしまう。
この数値には、各コンストラクタの処理時間は含まれていないので。
この場合だと、全て new すると、850 クロックも余計に掛かることになる。
さらに、Cxxx オブジェクトがデストラクトされる場合には、合計で、この
1.8 倍程度の時間が new しない場合より余計に掛かることになってしまう。
880デフォルトの名無しさん (ワッチョイ 9161-h5Ay)
2018/12/30(日) 19:01:20.20ID:31DgsdhN0 >>872
思い出したので追加しておく。
Little Endian の場合、
>Uint32 u32;
>BYTE u8;
>u8 = (BYTE )u32;
の代わりに、
Uint32 u32;
BYTE u8;
u8 = *(BYTE *)&u32;
という書き方も出来て、こっちの方が、処理効率が良い場合があるとされている。
しかし、BigEndian だとこの書き方は混乱を招きやすく、かつ、処理効率も
上がらないと思われる。
総合的に考えると、Little Endian の方が処理効率が上がりやすいはずだ。
思い出したので追加しておく。
Little Endian の場合、
>Uint32 u32;
>BYTE u8;
>u8 = (BYTE )u32;
の代わりに、
Uint32 u32;
BYTE u8;
u8 = *(BYTE *)&u32;
という書き方も出来て、こっちの方が、処理効率が良い場合があるとされている。
しかし、BigEndian だとこの書き方は混乱を招きやすく、かつ、処理効率も
上がらないと思われる。
総合的に考えると、Little Endian の方が処理効率が上がりやすいはずだ。
881デフォルトの名無しさん (ワッチョイ 3a52-MXej)
2018/12/30(日) 20:44:44.64ID:97KQkPau0882デフォルトの名無しさん (アウアウウー Sa39-Rqk6)
2018/12/31(月) 19:30:23.55ID:WGWLmLufa cのsetjmpを使ってるコードはc++で例外に置き換えられますか?
883デフォルトの名無しさん (ワッチョイ 9161-h5Ay)
2019/01/01(火) 22:54:34.62ID:H66xOrDI0 >>882
確か、関数呼び出し連鎖の途中の関数が誰も catch せずに放っておけば、
親の関数にまで戻れるはずなので、一応、同じようなことが出来る気もする。
長い間使ってないので、むしろ、setjmp, longjmp がどういうものだったか
の方を忘れてしまったけど。
たしかそれでいけたと思うな・・・。
確か、関数呼び出し連鎖の途中の関数が誰も catch せずに放っておけば、
親の関数にまで戻れるはずなので、一応、同じようなことが出来る気もする。
長い間使ってないので、むしろ、setjmp, longjmp がどういうものだったか
の方を忘れてしまったけど。
たしかそれでいけたと思うな・・・。
884デフォルトの名無しさん (ワッチョイ 81ad-RM76)
2019/01/05(土) 05:14:18.47ID:XzO5Y/Fl0 EASTL - 3.12.08 release
https://github.com/electronicarts/EASTL.git
https://github.com/electronicarts/EASTL.git
885デフォルトの名無しさん (ワッチョイ 8901-ikDe)
2019/01/05(土) 08:34:01.93ID:rov9DpyB0 std::variantって見たんだけどこれいいね。
886デフォルトの名無しさん (ワッチョイ 1301-4rLr)
2019/01/05(土) 09:09:14.58ID:xejHmutN0 型安全なunionか
なかなかいいかも
なかなかいいかも
887デフォルトの名無しさん (ワッチョイ 917c-aDDJ)
2019/01/05(土) 12:12:55.54ID:wMTnOPNR0888デフォルトの名無しさん (ワッチョイ 917c-aDDJ)
2019/01/05(土) 12:13:54.68ID:wMTnOPNR0889デフォルトの名無しさん (ワッチョイ 917c-aDDJ)
2019/01/05(土) 12:14:18.25ID:wMTnOPNR0890デフォルトの名無しさん (ワッチョイ d93d-3A6Y)
2019/01/05(土) 12:21:03.48ID:ZukYwWxe0 やっぱ整数なら下の桁から上の桁に向かって書いたり送ったりするのが自然
上の桁とか(整数という概念上は)何桁まで伸びるかわからないのだから
しかし一方人間の認識上は上の桁から見て量を把握したいという要求があり、
不幸にもラテン語が左から書くのにアラビア数字が右から書く慣習だったため
二つの文化を取り持つ玉虫色の解決策としてビッグエンディアンとかネットワークバイトオーダーみたいなものが生じた
上の桁とか(整数という概念上は)何桁まで伸びるかわからないのだから
しかし一方人間の認識上は上の桁から見て量を把握したいという要求があり、
不幸にもラテン語が左から書くのにアラビア数字が右から書く慣習だったため
二つの文化を取り持つ玉虫色の解決策としてビッグエンディアンとかネットワークバイトオーダーみたいなものが生じた
891デフォルトの名無しさん (ワッチョイ 5394-Fz1M)
2019/01/05(土) 14:23:51.42ID:o23qSFy30 スマホアプリとかのパケット解析するとわりとビッグエンディアン使われてる
892デフォルトの名無しさん (ワッチョイ fb02-cuFO)
2019/01/05(土) 14:47:37.72ID:2c1WII2F0 だってビッグエンディアンはネットワークバイトオーダーでもあるから。
外に出すデータや互換性保ちたいデータは普通そうすると思うよ。
外に出すデータや互換性保ちたいデータは普通そうすると思うよ。
893デフォルトの名無しさん (ワッチョイ 8195-LRU4)
2019/01/05(土) 14:56:34.85ID:Mw4M2zcY0 >>890
アラビア数字書くとき右から書いてるの?変わった人ね
アラビア数字書くとき右から書いてるの?変わった人ね
894デフォルトの名無しさん (ワッチョイ 81ad-RM76)
2019/01/06(日) 10:53:29.24ID:2S4Gmo3N0 数の表記だけじゃないさ。日付、人名、住所の表記も。
単純なASCIIソートで正しくソートできるのはどれかという話にもつながる。
単純なASCIIソートで正しくソートできるのはどれかという話にもつながる。
895デフォルトの名無しさん (ワッチョイ 8901-ikDe)
2019/01/06(日) 13:34:28.45ID:q7b7d/XL0 数値を数字に直すとき桁数を調べるには対数とればいいよ。
896デフォルトの名無しさん (ワッチョイ 917c-aDDJ)
2019/01/06(日) 14:27:57.77ID:UQlfmMBy0 中学生か
897デフォルトの名無しさん (ワッチョイ 51e3-PFih)
2019/01/06(日) 16:25:01.53ID:gVP3A6Xh0 >>895
数学的にはそれで完全に正しい。
しかしコンピュータには誤差があるので、
itoa() や printf() などを自分で実装するような場合、
よく考えないといけないかも知れない。
log_10(x) で計算すると N 桁だということになったとしても、
itoa() などを実装するアルゴリズムによっては、ある条件の時に
誤差によって、1ケタだけずれるかもしれない。
めったに無いことだが、これで銀行システムや戦闘機のシステムが
ダウンしたりするかも知れないので、数学は重要。
数学的にはそれで完全に正しい。
しかしコンピュータには誤差があるので、
itoa() や printf() などを自分で実装するような場合、
よく考えないといけないかも知れない。
log_10(x) で計算すると N 桁だということになったとしても、
itoa() などを実装するアルゴリズムによっては、ある条件の時に
誤差によって、1ケタだけずれるかもしれない。
めったに無いことだが、これで銀行システムや戦闘機のシステムが
ダウンしたりするかも知れないので、数学は重要。
898デフォルトの名無しさん (ワッチョイ 51e3-PFih)
2019/01/06(日) 16:27:31.80ID:gVP3A6Xh0 ちなみにオイラは数学は首席だったが、どういう場合にそれが生じるかは
即答することは出来ない。アルゴリズムを慎重に選ばないと、その誤差によって
システム・ダウンやアプリのハングアップ、保護例外などを引き起こす可能性が
わずかだが存在するかもしれない。
即答することは出来ない。アルゴリズムを慎重に選ばないと、その誤差によって
システム・ダウンやアプリのハングアップ、保護例外などを引き起こす可能性が
わずかだが存在するかもしれない。
899デフォルトの名無しさん (オッペケ Src5-mak3)
2019/01/06(日) 16:32:25.57ID:BCtLt9aar へぇ〜科目毎に首席決まるんだ笑
900さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 1901-YfKw)
2019/01/06(日) 16:48:35.20ID:5fyS0TRC0 n>=0かつ10^n <= m < 10^(n+1)
のときに整数mは十進n桁の数と言える。
不等式に常用対数を適用し、
n <= log_10 (m) < n+1
が得られる。つまり、1以上の整数mに常用対数を適用し、さらにガウス記号を適用したものがmの桁数だ。
m=0のときは一桁になることに注意する。
のときに整数mは十進n桁の数と言える。
不等式に常用対数を適用し、
n <= log_10 (m) < n+1
が得られる。つまり、1以上の整数mに常用対数を適用し、さらにガウス記号を適用したものがmの桁数だ。
m=0のときは一桁になることに注意する。
901さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 1901-YfKw)
2019/01/06(日) 16:50:11.91ID:5fyS0TRC0 計算結果の桁数が違うときは、常用対数の誤差とガウス記号の誤差の問題になる。
902さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 1901-YfKw)
2019/01/06(日) 16:57:04.99ID:5fyS0TRC0 常用対数の誤差については、有効桁数を使うか、区間演算により、誤差の範囲を見積もることが可能。そこで、誤差の範囲が整数をまたぐかどうかを判定すれば、問題は解決する。
903さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 1901-YfKw)
2019/01/06(日) 16:59:59.29ID:5fyS0TRC0 整数をまたぐ可能性があるときは実際に整数を文字列化すれば正確な桁数が算出可能。もしくは任意精度の多倍数演算により自由に精度を高めて再計算すればいい。
904さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 1901-YfKw)
2019/01/06(日) 17:00:41.37ID:5fyS0TRC0 *多倍長演算*
905さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-YfKw)
2019/01/06(日) 17:07:05.46ID:5LUvK3vXd オイラーは首席だったのか?
906さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-YfKw)
2019/01/06(日) 17:11:34.26ID:5LUvK3vXd NO DATA.
907さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 1901-YfKw)
2019/01/06(日) 17:23:51.30ID:5fyS0TRC0 ほら、反論しろよ?
908デフォルトの名無しさん (ワッチョイ 81ff-xhm2)
2019/01/06(日) 17:41:26.55ID:kxJaA4Vn0 ふつー数値から文字列に変換する変換関数そのものに長さを報告させるだろ
文字列の格納先のメモリを確保するときのサイズ見積もりに対数を使う場合は
ワーストケースで誤差が出た場合に備えればいい
文字列の格納先のメモリを確保するときのサイズ見積もりに対数を使う場合は
ワーストケースで誤差が出た場合に備えればいい
909さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 1901-YfKw)
2019/01/06(日) 17:44:32.37ID:5fyS0TRC0 具体的なほとんどのプログラムでは常用対数の誤差を一桁以内にすることは可能だろう。
910デフォルトの名無しさん (ワッチョイ a97c-88M8)
2019/01/06(日) 18:06:44.32ID:z+pllqoQ0 ゲームエンジンでおすすめありませんか?
911デフォルトの名無しさん (ワッチョイ 8901-ikDe)
2019/01/06(日) 18:12:46.00ID:q7b7d/XL0 本屋さんにはUnityコーナーがあるよ。
912デフォルトの名無しさん (ワッチョイ a97c-88M8)
2019/01/06(日) 18:19:00.70ID:z+pllqoQ0913デフォルトの名無しさん (ワッチョイ b332-xhm2)
2019/01/06(日) 18:21:40.42ID:mghQxkOO0 >>912
glfw
glfw
914さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 1901-YfKw)
2019/01/06(日) 18:22:16.06ID:5fyS0TRC0 スマホゲームならWebGL一択、ハイエンドならUnity、Unreal Engine、CoCo3D、ローエンドならOpenGL, DirectDraw, Haxeといったところか。
915デフォルトの名無しさん (ワッチョイ a97c-88M8)
2019/01/06(日) 18:34:54.20ID:z+pllqoQ0916デフォルトの名無しさん (ワッチョイ 5161-PFih)
2019/01/06(日) 19:53:45.75ID:viPzIL890 >>908
変換関数そのものをプログラムしたい場合に、あらかじめ桁数が分かって
いる方が便利 or 効率が良い、場合があり、log_10(x)を使用したくなってしまう。
ところがが、log 計算には誤差が有る可能性があるので、その値を過信するのは
問題だと言うことが言いたかった。
例えば、文字列化する際には、多くのアルゴリズムでは、下の方の桁から
決まっていく。しかし、文字列バッファには、上のケタから左詰で入れて
行く必要がある。となると、最初から桁数が分かっていれば、簡単に
プログラムできるのではないかと言う誘惑に駆られてしまう。
後、10で割っていって余りを使う方法は簡単ではあるが、そのアルゴリズム
そのものにも誤差が有る可能性が指摘されている。
変換関数そのものをプログラムしたい場合に、あらかじめ桁数が分かって
いる方が便利 or 効率が良い、場合があり、log_10(x)を使用したくなってしまう。
ところがが、log 計算には誤差が有る可能性があるので、その値を過信するのは
問題だと言うことが言いたかった。
例えば、文字列化する際には、多くのアルゴリズムでは、下の方の桁から
決まっていく。しかし、文字列バッファには、上のケタから左詰で入れて
行く必要がある。となると、最初から桁数が分かっていれば、簡単に
プログラムできるのではないかと言う誘惑に駆られてしまう。
後、10で割っていって余りを使う方法は簡単ではあるが、そのアルゴリズム
そのものにも誤差が有る可能性が指摘されている。
918デフォルトの名無しさん (ワッチョイ 81ff-xhm2)
2019/01/06(日) 20:16:22.17ID:kxJaA4Vn0 >>916
変換関数の中でメモリ割り付けを行うのが好みなのか?
変換関数の中でメモリ割り付けを行うのが好みなのか?
919デフォルトの名無しさん (ワッチョイ d93d-3A6Y)
2019/01/06(日) 20:27:50.31ID:Tw0qXLcy0 んま実際にわ数値の桁数とか型を見たら一発でわかるんですけどねwwwwww
logは人間の感覚特性にマッチした量的尺度を表したり(例:dB)、
情報量の表現に使う(同じものがいっぱいあるという状況は情報量を上げない)という目的が大きい
logは人間の感覚特性にマッチした量的尺度を表したり(例:dB)、
情報量の表現に使う(同じものがいっぱいあるという状況は情報量を上げない)という目的が大きい
920デフォルトの名無しさん (ワッチョイ 8901-ikDe)
2019/01/06(日) 21:04:54.26ID:q7b7d/XL0 HTMLパーサーありますか?
921デフォルトの名無しさん (ワッチョイ 81ff-xhm2)
2019/01/06(日) 21:27:13.56ID:kxJaA4Vn0 >>919
intは何桁だ?
intは何桁だ?
922デフォルトの名無しさん (ワッチョイ 79ab-cEz4)
2019/01/06(日) 22:23:30.07ID:IpTON8AO0923デフォルトの名無しさん (ワッチョイ 5161-PFih)
2019/01/06(日) 22:46:51.25ID:viPzIL890 >>917
前提として浮動小数点数(float/double など) の話だけど、誤差が無いとは言い切れない
事は分かると思う。
誤差を少なくする方法として、10で割ったりせずに、最初から、
10000.0, 1000.0, 100.0, 10.0, 1.0, 0.1, 0.01, 0.001
20000.0, 2000.0, ・・・
30000.0, 3000.0, ・・・
40000.0, 4000,0, ・・・
のようなものを計算しておいて、比較したり引き算したりする方法が
あるそうな。
浮動小数点値の場合、当然かもしれないが log を使わずに、IEEE の仕様を元に
指数部のBIT部分を読んで利用する方がいいらしい。
前提として浮動小数点数(float/double など) の話だけど、誤差が無いとは言い切れない
事は分かると思う。
誤差を少なくする方法として、10で割ったりせずに、最初から、
10000.0, 1000.0, 100.0, 10.0, 1.0, 0.1, 0.01, 0.001
20000.0, 2000.0, ・・・
30000.0, 3000.0, ・・・
40000.0, 4000,0, ・・・
のようなものを計算しておいて、比較したり引き算したりする方法が
あるそうな。
浮動小数点値の場合、当然かもしれないが log を使わずに、IEEE の仕様を元に
指数部のBIT部分を読んで利用する方がいいらしい。
924デフォルトの名無しさん (ワッチョイ 8901-xhm2)
2019/01/07(月) 08:39:12.81ID:4xwPMGVF0 桁数が重要になるような銀行や事務系の話?
それなら10進演算だろ
IEEEでも定義されてる
科学計算だと対数で問題ない
それなら10進演算だろ
IEEEでも定義されてる
科学計算だと対数で問題ない
925デフォルトの名無しさん (ワッチョイ 51e3-PFih)
2019/01/07(月) 13:35:29.03ID:QyN6UiiI0 >>924
自分で printf() を実装する場合の、浮動小数点数を文字列に直す時の話。
自分で printf() を実装する場合の、浮動小数点数を文字列に直す時の話。
926デフォルトの名無しさん (ワッチョイ b332-xhm2)
2019/01/07(月) 13:47:41.82ID:hsoUdh4l0 自分でprintfを実装するとか銀行のシステムを作るよりレアケースだな
927デフォルトの名無しさん (ワッチョイ 81ff-xhm2)
2019/01/07(月) 17:09:10.70ID:Cio2TleD0 ここがC++スレということを忘れて内科医?
printfはオーバーロードできるしグローバル以外の空間にも導入できる
printfはオーバーロードできるしグローバル以外の空間にも導入できる
928デフォルトの名無しさん (ワッチョイ 8901-eTP0)
2019/01/07(月) 20:19:39.05ID:hm6qCAOJ0 そんなことするんじゃねーよカスが。
929デフォルトの名無しさん (ワッチョイ 5167-xhm2)
2019/01/07(月) 23:14:26.87ID:lPhgCzer0 Pythonには素の遅いPythonとJITを使った素のPythonよりとてつもなく速いPythonがあるようですが
Boost.PythonでPythonスクリプトを読み込んで実行した場合は素の遅いPythonの速度になる認識であっているでしょうか?
また、Boost.PythonでJIT版Pythonを実行することは可能でしょうか?
Boost.PythonでPythonスクリプトを読み込んで実行した場合は素の遅いPythonの速度になる認識であっているでしょうか?
また、Boost.PythonでJIT版Pythonを実行することは可能でしょうか?
930デフォルトの名無しさん (ワッチョイ 5161-PFih)
2019/01/09(水) 00:35:27.60ID:I3YK3qiz0 >>929
全然その辺知らないけど、
そもそも、python の言語仕様自体がJITを使ったとしてもC/C++ほどの速度には
ならないはずだし、そもそも NumPy 使わないと遅いということは聞いてる。
大体のスクリプト言語は、言語仕様の段階で例えコンパイル言語化しても
どうすることも出来ない遅さが含まれてしまってる。
全然その辺知らないけど、
そもそも、python の言語仕様自体がJITを使ったとしてもC/C++ほどの速度には
ならないはずだし、そもそも NumPy 使わないと遅いということは聞いてる。
大体のスクリプト言語は、言語仕様の段階で例えコンパイル言語化しても
どうすることも出来ない遅さが含まれてしまってる。
931デフォルトの名無しさん (ワッチョイ 917c-aDDJ)
2019/01/09(水) 11:18:19.67ID:+j6Vua/i0 numpy使えばC並みの速度が出るようにも書けるが
numpy使ったからと言って馬鹿が描くと素のpython以上に遅くなる
numpy使ったからと言って馬鹿が描くと素のpython以上に遅くなる
932デフォルトの名無しさん (ラクッペ MMe5-88M8)
2019/01/09(水) 13:18:31.63ID:ePvWX0K6M 速度なんて誰でも気にしない優しい世界
933デフォルトの名無しさん (ワッチョイ 8901-eTP0)
2019/01/09(水) 19:27:53.32ID:LMntakFz0 用意されてるライブラリ使えと。
バカがイキって作ったライブラリより普通に速いから。
バカがイキって作ったライブラリより普通に速いから。
934デフォルトの名無しさん (ワッチョイ b332-xhm2)
2019/01/09(水) 19:38:55.54ID:P7Qg82S60 numpyの使い方の話ではなく?
935デフォルトの名無しさん (ワッチョイ a97c-88M8)
2019/01/09(水) 20:20:55.44ID:1OkzU/m20 というかスレチでは?
936デフォルトの名無しさん (ワッチョイ 5161-PFih)
2019/01/09(水) 21:54:22.59ID:eG2hyzXv0 ・動的型言語
・自動メモリ管理
・リンクリストと配列を余り区別しない書き方をする人が多い傾向。
これらがあるので、pythonをコンパイル型にしてもある程度以上の高速化は
難しいと思われる。
・自動メモリ管理
・リンクリストと配列を余り区別しない書き方をする人が多い傾向。
これらがあるので、pythonをコンパイル型にしてもある程度以上の高速化は
難しいと思われる。
937デフォルトの名無しさん (ワッチョイ f15f-u+tM)
2019/01/09(水) 22:15:33.61ID:oaJURpH60 Cythonの話?
938デフォルトの名無しさん (ワッチョイ 5161-PFih)
2019/01/09(水) 22:24:15.05ID:eG2hyzXv0 pythonの速度測定は、やってみたことないけどね。(^_^;)
939デフォルトの名無しさん (アウアウエー Sa22-oec2)
2019/01/10(木) 08:22:27.02ID:jdFEneY4a Pythonにリンクリストなんか無いだろ
Pythonの配列(list)はvector相当の動的配列
実はリンクリストが動的配列より速いケースってC++でも現実にはほとんど無くて、あまり価値のないデータ構造だよ
拡張・縮小にメモリの再確保が不要で抽象化を必要としないから、Cのような生ポインタを好んで使いまくる言語と相性がいいだけ
Pythonの配列(list)はvector相当の動的配列
実はリンクリストが動的配列より速いケースってC++でも現実にはほとんど無くて、あまり価値のないデータ構造だよ
拡張・縮小にメモリの再確保が不要で抽象化を必要としないから、Cのような生ポインタを好んで使いまくる言語と相性がいいだけ
940デフォルトの名無しさん (ワッチョイ faa5-rp4P)
2019/01/10(木) 13:04:00.84ID:EKtor9ZH0 ttps://github.com/python/cpython/blob/master/Modules/arraymodule.c
3000行のありがたいソースコードを読み解けば何かが分る
3000行のありがたいソースコードを読み解けば何かが分る
941デフォルトの名無しさん (ブーイモ MM71-oec2)
2019/01/10(木) 13:06:20.15ID:RGz7BwRGM >>940
普通に動的配列だな
普通に動的配列だな
942デフォルトの名無しさん (ワッチョイ 4a32-VK1S)
2019/01/10(木) 15:05:21.30ID:681jFEkb0 ハード屋さんが頑張りすぎて必要なくなっちゃったな
でも便利だからforward_listを使うことはある
でも便利だからforward_listを使うことはある
943デフォルトの名無しさん (ワッチョイ 4ea0-N8Dk)
2019/01/10(木) 20:06:55.51ID:Dp9bpyFY0 tupleってメンバ関数で値取り出せないのね。
std::get<N>( t ) ってファンキー過ぎやしませんか。
下手に使うとコンパイルに時間食われそう。
std::get<N>( t ) ってファンキー過ぎやしませんか。
下手に使うとコンパイルに時間食われそう。
944デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
2019/01/10(木) 21:56:09.15ID:cH4uyoE20 関数やテンプレートで、できることとできないことを
冷静に考えてみな
冷静に考えてみな
945デフォルトの名無しさん (ワッチョイ f995-peLi)
2019/01/10(木) 22:54:40.61ID:pr4jZotH0 >>944
テンプレート化すればメンバ関数にすることはできるのでは?
テンプレート化すればメンバ関数にすることはできるのでは?
946デフォルトの名無しさん (ワッチョイ 4a32-VK1S)
2019/01/10(木) 23:01:28.43ID:681jFEkb0 コードを生成するのはプリプロセッサの役割
947デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
2019/01/10(木) 23:13:51.80ID:cH4uyoE20948デフォルトの名無しさん (ワッチョイ 9a3a-w1rC)
2019/01/10(木) 23:31:47.36ID:lkkMD/RY0 メンバテンプレートにするとtupleをテンプレートに放り込んだときに
t.template get<0>()
と書かなきゃならなくなってこりゃないわーで皆が合意したからじゃ
t.template get<0>()
と書かなきゃならなくなってこりゃないわーで皆が合意したからじゃ
949デフォルトの名無しさん (ワッチョイ 4ea0-N8Dk)
2019/01/11(金) 13:20:57.05ID:QV4rGvMY0 せめてstd::tuple::get<N>( t ) にして欲しかった。
std名前空間汚れすぎ。
std名前空間汚れすぎ。
950デフォルトの名無しさん (ワッチョイ a57c-Iup+)
2019/01/11(金) 13:34:51.99ID:5RUmP2fm0951デフォルトの名無しさん (ワントンキン MM8a-vTg4)
2019/01/11(金) 14:22:09.67ID:gs9IdzGQM 他のコンテナでも同じように使える様にしたかったんじゃないの
オーバロードで
オーバロードで
952デフォルトの名無しさん (ワッチョイ 715f-L/7z)
2019/01/11(金) 14:50:24.94ID:e7J07k250 std::getは固定長コンテナなら何でも使えるぞ
std::pairでもstd::arrayでも生配列でも
std::pairでもstd::arrayでも生配列でも
953デフォルトの名無しさん (ワッチョイ 4a32-VK1S)
2019/01/11(金) 15:52:17.33ID:uZGQy9uP0 >>949
std::getにすることによってテンプレート引数にtupleと見なせる型(pair,array)を使うことができるようにしたいからそうなっている
std::getにすることによってテンプレート引数にtupleと見なせる型(pair,array)を使うことができるようにしたいからそうなっている
954デフォルトの名無しさん (ワッチョイ 4a32-VK1S)
2019/01/11(金) 15:56:06.33ID:uZGQy9uP0 ちなみにstd::getのユーザーによる特殊化は次から禁止される予定です
955デフォルトの名無しさん (ワッチョイ 1902-l2tH)
2019/01/11(金) 17:29:27.31ID:qkp6ca1e0 ポリモーフィズムを使っていて、ダウンキャストを行うときって
dynamic_castをしてみてnullptrかどうかを判断するのがベストな手順なんですか?
RTTIから実際の型情報を引っ張ってくる手段はないものでしょうか
dynamic_castをしてみてnullptrかどうかを判断するのがベストな手順なんですか?
RTTIから実際の型情報を引っ張ってくる手段はないものでしょうか
956デフォルトの名無しさん (ブーイモ MM71-peLi)
2019/01/11(金) 18:21:19.24ID:3LH9+DohM >>955
もちできるけど、検査したい型を継承した型を渡されたら動かないよ?
もちできるけど、検査したい型を継承した型を渡されたら動かないよ?
957デフォルトの名無しさん (ワッチョイ d646-kZrb)
2019/01/11(金) 19:17:46.71ID:KlFqADLA0 >>955
それこそポリモーフィズムで派生クラスのthisを直でもらえばいいんじゃないの
それこそポリモーフィズムで派生クラスのthisを直でもらえばいいんじゃないの
958デフォルトの名無しさん (ワッチョイ 4ea0-N8Dk)
2019/01/11(金) 19:25:12.52ID:QV4rGvMY0 >>955
typeid で type_info 取れるよ。
基底クラスにenum Type 等を持たせてswitchも手の一つ。
処理内容によってはvisitor パターンが使える。俺が知ってるのはこれくらい。
typeid で type_info 取れるよ。
基底クラスにenum Type 等を持たせてswitchも手の一つ。
処理内容によってはvisitor パターンが使える。俺が知ってるのはこれくらい。
959デフォルトの名無しさん (ワッチョイ 715f-L/7z)
2019/01/11(金) 20:46:28.26ID:e7J07k250 まず、なるべくダウンキャストなんか必要ないようにするのが最初だけどな
960デフォルトの名無しさん (ワッチョイ 4a32-VK1S)
2019/01/11(金) 20:50:53.28ID:uZGQy9uP0 ダウンキャスト使わないのがベスト
961デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
2019/01/11(金) 21:13:21.95ID:ymL5E9Q60 >>955
ダウンキャストが必要になるなら、選択はそれしかない
ダウンキャストが必要になるなら、選択はそれしかない
962デフォルトの名無しさん (ドコグロ MM9d-CymP)
2019/01/11(金) 22:23:52.97ID:jxLB4o2EM963デフォルトの名無しさん (ワッチョイ dd01-RNo8)
2019/01/11(金) 23:12:06.09ID:TUR+WyZ10 カミカゼキャストについて教えてください。
不意にフレーズが浮かんだのです。
不意にフレーズが浮かんだのです。
964デフォルトの名無しさん (オイコラミネオ MM5e-pqTR)
2019/01/12(土) 00:03:01.76ID:i0P8FrwoM SOLID守ってんのかよちゃんと
965デフォルトの名無しさん (ワッチョイ 4ea0-N8Dk)
2019/01/12(土) 01:42:52.85ID:Cfay/yS40 dynamic_castでnullptrなりbad-cast拾うのはお勧めできない。
966デフォルトの名無しさん (ワッチョイ f995-cxt4)
2019/01/12(土) 01:53:56.64ID:ygc4MJ1X0 >>965
nullptrでキャスト可否を確認するのは普通の使い方だろ…
nullptrでキャスト可否を確認するのは普通の使い方だろ…
967デフォルトの名無しさん (ワッチョイ dd01-kcJn)
2019/01/12(土) 01:57:02.82ID:WnhdkTsC0 cならともかくc++でキャストが必要になるのはどっかやばいことになってる可能性を考えた方がいい
968デフォルトの名無しさん (アウアウカー Sadd-7PRf)
2019/01/12(土) 03:58:57.87ID:xRzP6oFDa ライブラリの関数の引数が非constのchar配列で渡したい文字列がstd::stringに入ってるとき
.c_str()をconst_castしてるけどあかんの
.c_str()をconst_castしてるけどあかんの
969デフォルトの名無しさん (ワッチョイ c1a5-M9p6)
2019/01/12(土) 04:35:25.22ID:vq0ymgcL0 opencvを使用して画像処理を行ってるんですが画像データにAWGNを加える方法が分かりません
グレースケール化させて処理をしています
乱数生成などは理解しているんですがその乱数を使ってどのような値として輝度値に影響させるのかが分かってません
よろしくお願いします
visual c++を使用しています
グレースケール化させて処理をしています
乱数生成などは理解しているんですがその乱数を使ってどのような値として輝度値に影響させるのかが分かってません
よろしくお願いします
visual c++を使用しています
970デフォルトの名無しさん (ワッチョイ c1a5-M9p6)
2019/01/12(土) 04:53:59.45ID:vq0ymgcL0 >>969
Mat s;
src.convertTo(s, CV_16S);
Mat noise(s.size(), CV_16S);
randn(noise, 0, sigma);
Mat temp = s + noise;
temp.convertTo(dst, CV_8U);
今こう考えているんですがあっていますでしょうか
srcが原画像、dstがノイズ画像です
Mat s;
src.convertTo(s, CV_16S);
Mat noise(s.size(), CV_16S);
randn(noise, 0, sigma);
Mat temp = s + noise;
temp.convertTo(dst, CV_8U);
今こう考えているんですがあっていますでしょうか
srcが原画像、dstがノイズ画像です
971デフォルトの名無しさん (ワッチョイ 4a32-VK1S)
2019/01/12(土) 04:55:24.88ID:k4bgy+v70 画像処理のことなんか知らん
972デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
2019/01/12(土) 05:30:28.09ID:DxcCYmak0 >>955
RTTIから実際の型情報を引っ張ってくる手段というとtypeidだね
void func(ios_base* ptr)
{
if(typeid(*ptr) == typeid(istream) { /* ... */ }
if(typeid(*ptr) == typeid(ostream) { /* ... */ }
}
RTTIから実際の型情報を引っ張ってくる手段というとtypeidだね
void func(ios_base* ptr)
{
if(typeid(*ptr) == typeid(istream) { /* ... */ }
if(typeid(*ptr) == typeid(ostream) { /* ... */ }
}
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」 [ぐれ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★2 [ぐれ★]
- 広島・廿日市、おこめ券配布せず 全市民に3000円現金給付へ [どどん★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 気象庁「最悪のケースでは311のような地震」青森で震度6強地震「北海道・三陸沖後発地震注意情報」…北海道から千葉の182市町村が対象 [♪♪♪★]
- 【高市悲報】あまかいちし、「お米券は事務手数料がかかり過ぎるので、現金給付にしまーす!」 [947959745]
- 【実況】博衣こよりのえちえちチーズケーキを仕込み(雑談あり)🧪
- 【高市フェリー】🇨🇳上海ー神戸・大阪🇯🇵を結ぶ国際定期フェリー「渡航の安全が確保できない」運航を中止 [485983549]
- 【速報】1ポンド210円で日英GDP逆転(残り1.5円)...世界6位の経済規模に転落 [237216734]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑★2 [931948549]
- 【ウイスキー】ジョニ黒(12年)と緑(15年)って味に明確な差ってあるの?価格は倍くらい違うけど [201193242]
