C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part148
https://mevius.5ch.net/test/read.cgi/tech/1580471646/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
探検
C++相談室 part149
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2020/02/18(火) 06:19:41.54ID:xvjipUWj951デフォルトの名無しさん
2020/03/21(土) 22:26:18.85ID:SLPXMQFT >という形の多重ループのループ変数 a, b, c,... を a[0], a[1], a[2],... にしたいという意味です。
やればいいだけの話じゃなくて?質問は何だろう。
やればいいだけの話じゃなくて?質問は何だろう。
952デフォルトの名無しさん
2020/03/21(土) 22:38:22.14ID:XPOe/jnY >>951
n が実行時に決まるような場合どうしたら良いかという意味です
n が実行時に決まるような場合どうしたら良いかという意味です
953デフォルトの名無しさん
2020/03/21(土) 22:39:31.10ID:lGRjmGfi954デフォルトの名無しさん
2020/03/21(土) 22:40:14.16ID:vbC+9hSb 本当に実行時なら再帰で書くしか無いんじゃね
955デフォルトの名無しさん
2020/03/21(土) 22:49:54.75ID:XPOe/jnY >>953-954
ありがとうございます。
再帰templateで調べてみます。
あと書いてて気付いたのですが、n桁のm進数にループ変数 a[0], a[1],... をエンコードするっていうのも一つの方法かなと思いました。
ありがとうございます。
再帰templateで調べてみます。
あと書いてて気付いたのですが、n桁のm進数にループ変数 a[0], a[1],... をエンコードするっていうのも一つの方法かなと思いました。
956デフォルトの名無しさん
2020/03/21(土) 22:50:20.71ID:lGRjmGfi 確かにtemplateでなくても再帰で可能か
ただlambdaで渡せないからstd::functionで包む必要あるね
ただlambdaで渡せないからstd::functionで包む必要あるね
957デフォルトの名無しさん
2020/03/21(土) 22:57:37.57ID:80zI/5JK >>949
やりたいことは、係数をm^2の2次元配列xとm^3の3次元配列yに入れておいて、2番目のループではx[a][b], 3番目のループではy[a][b][c]を使用するということか?
サイズ可変でも動的に確保すればいいだけ。
やりたいことは、係数をm^2の2次元配列xとm^3の3次元配列yに入れておいて、2番目のループではx[a][b], 3番目のループではy[a][b][c]を使用するということか?
サイズ可変でも動的に確保すればいいだけ。
958デフォルトの名無しさん
2020/03/21(土) 22:58:48.87ID:80zI/5JK すまん、全くの検討違いだったようだ
959デフォルトの名無しさん
2020/03/21(土) 23:07:32.20ID:XPOe/jnY960デフォルトの名無しさん
2020/03/22(日) 00:59:09.60ID:7dJergc9 全てのa[i]が始点0,終点mならa[i]でなくてもjとかでよくね?
961デフォルトの名無しさん
2020/03/22(日) 01:21:14.83ID:GKarRavC std::sortに並列化+ベクトル化指定つけて実行したら、コア数以上に高速化したんだけど、なんで?
962デフォルトの名無しさん
2020/03/22(日) 01:31:16.84ID:ESnYypih キャッシュに全部載るようになったとか
963デフォルトの名無しさん
2020/03/22(日) 01:36:53.01ID:7dJergc9964デフォルトの名無しさん
2020/03/22(日) 02:31:12.30ID:7dJergc9 >>955
こういう解釈でいいのかな
ループがふたつになるかな
a=new int[n];
for(i=0;i<m^n;i++){
for(j=0;j<n;j++){
a[j]=i%m;
i/=m;
}
function(a,n);
}
delete[] a;
こういう解釈でいいのかな
ループがふたつになるかな
a=new int[n];
for(i=0;i<m^n;i++){
for(j=0;j<n;j++){
a[j]=i%m;
i/=m;
}
function(a,n);
}
delete[] a;
965デフォルトの名無しさん
2020/03/22(日) 02:42:13.57ID:5XORMJuJ966はちみつ餃子 ◆8X2XSCHEME
2020/03/22(日) 11:52:38.51ID:I961moxw967デフォルトの名無しさん
2020/03/22(日) 11:56:28.35ID:GKarRavC 多重継承のときのCRTPについて説明してるサイトないですか
968デフォルトの名無しさん
2020/03/22(日) 14:40:43.43ID:VphPQW8g そんなモンがあるなんて初めて知った
やはりC++は奥が深いな
やはりC++は奥が深いな
969デフォルトの名無しさん
2020/03/22(日) 19:39:49.88ID:HvrypJyW >>949
>TeX の文法で数式を書けば
>\prod_{i=0}^{n} \sum_{a[i]=0}^{m}
>という意味です。
絶対ではないが、標準的な数学の記法だと、その意味では、
\sum_{a[0]=0}^{m}・・・\sum_{a[n]=0}^{m}
と書くのがが普通だと思う。
ところでそれは量子力学の経路積分か何かですか?
経路積分の場合は、本によって上記の部分に割と独特の変な記号を使う場合があって、
あなたの書いたように書いてある本もあるかもしれません。
ただ、普通の数学記法だと余り使いませんよね、その書き方は。
>TeX の文法で数式を書けば
>\prod_{i=0}^{n} \sum_{a[i]=0}^{m}
>という意味です。
絶対ではないが、標準的な数学の記法だと、その意味では、
\sum_{a[0]=0}^{m}・・・\sum_{a[n]=0}^{m}
と書くのがが普通だと思う。
ところでそれは量子力学の経路積分か何かですか?
経路積分の場合は、本によって上記の部分に割と独特の変な記号を使う場合があって、
あなたの書いたように書いてある本もあるかもしれません。
ただ、普通の数学記法だと余り使いませんよね、その書き方は。
970デフォルトの名無しさん
2020/03/22(日) 19:46:47.90ID:HvrypJyW >>969
補足すれば、普通の数学記法だと
\sum_{a[0]=0}^{m}・・・\sum_{a[n]=0}^{m} f(a[0],・・・,a[n]) //(1)
ですね。
\prod_{i=0}^{n} \sum_{a[i]=0}^{m} //(2)
の記号の場合は、
X= \prod_{i=0}^{n} \sum_{a[i]=0}^{m} g_i(a[i]) //(3)
の場合は、
b[i] = \sum_{a[i]=0}^{m} g_i(a[i]) //(4)
(i=0, ・・・, n)
を先に計算しておいて、
X = \prod_{i=0}^{n} b[i] //(5)
= b[0]・・・b[i] //(6)
の意味に解釈するのが標準的な数学の記号の使い方だと個人的には思います。
(1)と(3)ではかなり意味が違いますが、(2)の記号を、(1)の先頭に使えるかと言えば、
絶対使えないわけでは有りませんが、使う前に何らかの補足説明が必要になりそうです。
補足すれば、普通の数学記法だと
\sum_{a[0]=0}^{m}・・・\sum_{a[n]=0}^{m} f(a[0],・・・,a[n]) //(1)
ですね。
\prod_{i=0}^{n} \sum_{a[i]=0}^{m} //(2)
の記号の場合は、
X= \prod_{i=0}^{n} \sum_{a[i]=0}^{m} g_i(a[i]) //(3)
の場合は、
b[i] = \sum_{a[i]=0}^{m} g_i(a[i]) //(4)
(i=0, ・・・, n)
を先に計算しておいて、
X = \prod_{i=0}^{n} b[i] //(5)
= b[0]・・・b[i] //(6)
の意味に解釈するのが標準的な数学の記号の使い方だと個人的には思います。
(1)と(3)ではかなり意味が違いますが、(2)の記号を、(1)の先頭に使えるかと言えば、
絶対使えないわけでは有りませんが、使う前に何らかの補足説明が必要になりそうです。
971デフォルトの名無しさん
2020/03/22(日) 19:47:50.29ID:HvrypJyW >>970
誤: = b[0]・・・b[i] //(6)
正: = b[0]・・・b[n] //(6)
誤: = b[0]・・・b[i] //(6)
正: = b[0]・・・b[n] //(6)
972デフォルトの名無しさん
2020/03/22(日) 21:29:26.79ID:LOA9pF7P >>967
派生が継承してる複数の基底を受け取りたいとか?
派生が継承してる複数の基底を受け取りたいとか?
973デフォルトの名無しさん
2020/03/23(月) 12:49:54.29ID:bf1cRh+B int *pInts = new int[10]();
とした場合の最後の()の意味は何でしょうか?
付けない場合との差を教えてください。
とした場合の最後の()の意味は何でしょうか?
付けない場合との差を教えてください。
974はちみつ餃子 ◆8X2XSCHEME
2020/03/23(月) 13:29:11.05ID:FLdc410A >>973
イニシャライザ。
普通のクラスではそれがないときはデフォルトコンストラクタで初期化される (空の括弧があっても無くても同じ挙動) けど、
int 等では初期化を明示しない限り初期化されない。
逆に言えばこの場合は初期化を明示しているので初期化される。 (0 が入る)
イニシャライザ。
普通のクラスではそれがないときはデフォルトコンストラクタで初期化される (空の括弧があっても無くても同じ挙動) けど、
int 等では初期化を明示しない限り初期化されない。
逆に言えばこの場合は初期化を明示しているので初期化される。 (0 が入る)
975デフォルトの名無しさん
2020/03/23(月) 13:37:39.77ID:bf1cRh+B >>974
有難うございます。では、
int *pInts = new int[3](1,2,3); //(1)
int *pInts = new int[3]{1,2,3}; //(2)
の違いは何でしょうか?
有難うございます。では、
int *pInts = new int[3](1,2,3); //(1)
int *pInts = new int[3]{1,2,3}; //(2)
の違いは何でしょうか?
976はちみつ餃子 ◆8X2XSCHEME
2020/03/23(月) 14:11:51.67ID:FLdc410A >>975
(2) の場合には集成体初期化になる。
https://ja.cppreference.com/w/cpp/language/new#.E6.A7.8B.E7.AF.89
(1) も C++20 からは集成体初期化になる。
だけど gcc と clang の最新版で試しても出来ないっぽいし、
あえて丸括弧で書きたい理由はないなぁ。
(2) の場合には集成体初期化になる。
https://ja.cppreference.com/w/cpp/language/new#.E6.A7.8B.E7.AF.89
(1) も C++20 からは集成体初期化になる。
だけど gcc と clang の最新版で試しても出来ないっぽいし、
あえて丸括弧で書きたい理由はないなぁ。
977デフォルトの名無しさん
2020/03/23(月) 14:16:57.36ID:bf1cRh+B978デフォルトの名無しさん
2020/03/23(月) 14:16:57.82ID:bf1cRh+B979デフォルトの名無しさん
2020/03/23(月) 14:18:32.74ID:bf1cRh+B980はちみつ餃子 ◆8X2XSCHEME
2020/03/23(月) 14:39:25.62ID:FLdc410A981デフォルトの名無しさん
2020/03/23(月) 16:20:38.54ID:bf1cRh+B >>980
最初は集成体初期化を使って、
int *pInts = new int[100](1,2,3); //(1)
int *pInts = new int[100](1,2); //(2)
int *pInts = new int[100](1); //(3)
int *pInts = new int[100](); //(4)
とどんどん()の中の項目を減らして行き、最後に0個にした場合、
推論的な延長線上にあると思えるか、それとも全く違った結果になるかどちらですか?
最初は集成体初期化を使って、
int *pInts = new int[100](1,2,3); //(1)
int *pInts = new int[100](1,2); //(2)
int *pInts = new int[100](1); //(3)
int *pInts = new int[100](); //(4)
とどんどん()の中の項目を減らして行き、最後に0個にした場合、
推論的な延長線上にあると思えるか、それとも全く違った結果になるかどちらですか?
982はちみつ餃子 ◆8X2XSCHEME
2020/03/23(月) 17:58:00.87ID:FLdc410A >>981
C++20 的に言えば集成体初期化の文法に統合されたということにはなるんだと思うけど、経緯はよくしらない。
C++20 的に言えば集成体初期化の文法に統合されたということにはなるんだと思うけど、経緯はよくしらない。
983デフォルトの名無しさん
2020/03/23(月) 18:27:48.17ID:bf1cRh+B もし、
{1,2,3,0,0,0,0,0}
{1,2,0,0,0,0,0,0}
{1,0,0,0,0,0,0,0}
{0,0,0,0,0,0,0,0}
のようになるんであれば、()は(xxx)のxxxを書かない場合と捉えるのは数学的推論として
正しい見方になりますね。
実際に上のようになるのか、未初期化の部分が残るのかは知りませんが。
{1,2,3,0,0,0,0,0}
{1,2,0,0,0,0,0,0}
{1,0,0,0,0,0,0,0}
{0,0,0,0,0,0,0,0}
のようになるんであれば、()は(xxx)のxxxを書かない場合と捉えるのは数学的推論として
正しい見方になりますね。
実際に上のようになるのか、未初期化の部分が残るのかは知りませんが。
984はちみつ餃子 ◆8X2XSCHEME
2020/03/23(月) 18:32:49.31ID:FLdc410A985はちみつ餃子 ◆8X2XSCHEME
2020/03/23(月) 18:45:31.47ID:FLdc410A >>983
空の丸括弧でゼロ初期化されるのは C++03 にはすでに有って、
波括弧で初期化する文法は C++11 から入って、
(そこから色々と条件の緩和やら変更やらがありつつ)
空ではない丸括弧で集成体初期化になるのは C++20 からという段階的な変化がある。
追加された文法が既存の文法となるべく一貫性を持つように統合しようとはしているけど、
互換性を壊さないようにというのも C++ の強い要件なので、
正確なルールはごちゃごちゃした条件の塊になりがち。
まあまあ整理されている部分もあるけど、
勝手な予想ではなくちゃんと資料にはあたった方がいいよ。
空の丸括弧でゼロ初期化されるのは C++03 にはすでに有って、
波括弧で初期化する文法は C++11 から入って、
(そこから色々と条件の緩和やら変更やらがありつつ)
空ではない丸括弧で集成体初期化になるのは C++20 からという段階的な変化がある。
追加された文法が既存の文法となるべく一貫性を持つように統合しようとはしているけど、
互換性を壊さないようにというのも C++ の強い要件なので、
正確なルールはごちゃごちゃした条件の塊になりがち。
まあまあ整理されている部分もあるけど、
勝手な予想ではなくちゃんと資料にはあたった方がいいよ。
986デフォルトの名無しさん
2020/03/23(月) 19:36:44.54ID:7lDoSnDw 配列の初期化方法が20通りくらいあるんじゃねえか
987デフォルトの名無しさん
2020/03/23(月) 20:24:40.26ID:V7MpBiZM 結局、波括弧と丸括弧はどっちが良いの?
C++11の時点では、波括弧が使えるところでは波括弧使っとけってのがMayers神の教えだったけども
C++11の時点では、波括弧が使えるところでは波括弧使っとけってのがMayers神の教えだったけども
988デフォルトの名無しさん
2020/03/23(月) 20:44:37.69ID:uqcQPrX7 汝の欲するところを行え
それが法とならん
それが法とならん
989デフォルトの名無しさん
2020/03/23(月) 22:25:35.27ID:d94IfFIM 好きなようにやったところで法(規格なりデファクトスタンダード)にはならんだろw
990デフォルトの名無しさん
2020/03/23(月) 23:44:35.50ID:Y58N/W/D よし、じゃあ今から俺が法な。
ここの住人は全員システムハンガリアン強制
ここの住人は全員システムハンガリアン強制
991デフォルトの名無しさん
2020/03/24(火) 00:05:30.25ID:YFRNwZnv992はちみつ餃子 ◆8X2XSCHEME
2020/03/24(火) 00:21:01.48ID:DmQItF6u >>987
シンタクス的にどちらでも良いときには波括弧を優先した方がよいと思う。
波括弧は縮小変換を許さないので意図しない情報の欠落は防止できる可能性が高い。
縮小変換が必要な場面に限って丸括弧を使えばそこが要注意ポイントってのがわかりやすい。
----
ところで縮小変換より狭化変換という用語の方が好きなんだけど、
みんなどっち使ってる? やっぱ縮小変換の方が標準的かな?
シンタクス的にどちらでも良いときには波括弧を優先した方がよいと思う。
波括弧は縮小変換を許さないので意図しない情報の欠落は防止できる可能性が高い。
縮小変換が必要な場面に限って丸括弧を使えばそこが要注意ポイントってのがわかりやすい。
----
ところで縮小変換より狭化変換という用語の方が好きなんだけど、
みんなどっち使ってる? やっぱ縮小変換の方が標準的かな?
993デフォルトの名無しさん
2020/03/24(火) 14:12:02.77ID:v3Nctwhv994デフォルトの名無しさん
2020/03/24(火) 14:21:15.32ID:Qfdj04Y0 >>992
そうなのね。ありがとうー
そうなのね。ありがとうー
995デフォルトの名無しさん
2020/03/24(火) 14:41:38.83ID:cFvopTvT へぇこんな配列の初期化の仕方あるんだねぇ
お前らC++に詳しいじゃん
お前らC++に詳しいじゃん
996デフォルトの名無しさん
2020/03/24(火) 18:53:00.89ID:l++MC8Rs C言語の時点で int a[100] = {0}; でゼロクリア
もはや裏ワザの部類
https://cpplover.blogspot.com/2010/09/blog-post_20.html
int a[2][2] = { 1, 2, 3, 4 } ;
多次元配列の初期化での謎機能
これも裏ワザにしか見えない
裏ワザ・例外・隠し機能が相まって配列の初期化だけで一冊の同人誌が出来上がる
もはや裏ワザの部類
https://cpplover.blogspot.com/2010/09/blog-post_20.html
int a[2][2] = { 1, 2, 3, 4 } ;
多次元配列の初期化での謎機能
これも裏ワザにしか見えない
裏ワザ・例外・隠し機能が相まって配列の初期化だけで一冊の同人誌が出来上がる
997デフォルトの名無しさん
2020/03/24(火) 20:25:22.03ID:1n+V7cka universal initializerなんてバグの塊でしかない。
https://qiita.com/h2suzuki/items/d033679afde821d04af8
https://qiita.com/h2suzuki/items/d033679afde821d04af8
998デフォルトの名無しさん
2020/03/24(火) 22:49:16.96ID:T0vrM+QL999デフォルトの名無しさん
2020/03/24(火) 22:50:59.22ID:o8Zozk/+ 数学は記号定義してなんぼだからね
1000デフォルトの名無しさん
2020/03/24(火) 23:08:33.60ID:v3Nctwhv10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 35日 16時間 48分 52秒
新しいスレッドを立ててください。
life time: 35日 16時間 48分 52秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★4 [樽悶★]
- 「“なり得る”って言っただけだから…」高市早苗“存立危機”答弁後に漏らした本音 ★3 [Hitzeschleier★]
- 歩道で93歳男性が女子大学生の自転車にはねられ意識不明 坂を下った先「気付いたときには目の前に」 [七波羅探題★]
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で ★4 [お断り★]
- 中国が水産物の輸入停止、首相答弁撤回を要求…中国共産党機関紙「輸入停止は一つのシグナルにすぎない」 [ぐれ★]
- 【テレビ】佐野岳 TBS『最強スポーツ男子頂上決戦』収録で重傷… 右膝半月板損傷と靭帯断裂 全治8カ月~9カ月間 [冬月記者★]
- 国策芸人やすこさん、TBSサンデージャポンで高市首相を絶賛 [633746646]
- 高市有事、今度はパンダに飛び火wwwwwwwwwwwwwww [834922174]
- テレビ局各社が高市首相を一切批判せず中国批判を展開 安倍時代の報道完全復活 [633746646]
- 🍣にゃっはろ🌸~スシろ~🏡
- この国の動物園、終わる… ゴリラ、キリン、ゾウ、人気動物が続々と消える… どこかに大きくてかっこいい大型獣いませんか? [452836546]
- 海外大手メディア、高市が中国に宣戦布告したと次々報道し始める。どんどん外堀が埋められる [931948549]
