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


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

C vs C++ vs Rust Part.3



1 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 22:19:47.56 ID:avZQ9Wm7.net]
闘え
※前スレ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/
C vs C++ vs Rust Part.2
https://mevius.5ch.net/test/read.cgi/tech/1639539350/

552 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 20:43:27.53 ID:oh1xEFC0.net]
enum Optionとか便利で簡潔に
null nil undefined -1など無くして安全に出来ていいよね
それでいてコンパイル後は最適化されたり消えたりして効率も両立されたり

553 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 20:52:32.01 ID:faeKJv0z.net]
別にC++でも同じことはできるけどね
自分で組めばC++14とかでもrxっぽく書いたり、Optionの実装も余裕
手間さえ惜しまなければw

554 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 20:55:03.76 ID:faeKJv0z.net]
Javaも最近は左側省略できるよ
おっしゃるとおり基底型何にするかは選べないけどw

555 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 20:58:40.56 ID:LRb50lm3.net]
C++17にstd::optional<T>があるにはあるのだが...

膨大な量の既存のSTLが無効値をoptionalに置き換えられることはない
つまり無効値でoptionalを返す風潮ができにくいから悲しみ

556 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 20:59:36.98 ID:oh1xEFC0.net]
引数の型推論は原理的にはかなり出来そうだけど
例えば引数がas_ref()で使われていて変換後がPathなら引数はimpl AsRef<Path>までやっちゃう?
でもその利用者へのインタフェース明示や可読性と保守性を考えると型明記でいいような気がする

557 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 21:13:38.45 ID:faeKJv0z.net]
C++もautoだらけlambdaだらけにすると引数も戻り値も結構型書かなくていいけど、遠すぎて何に怒られてるのか分からん代入エラーが出たりもするw
Rustも同じだけどエラーは分かりやすい

558 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 21:15:46.46 ID:cEFLJG6J.net]
>>545
そこはやろうと思えばできるレベルと
Rustが標準ライブラリで全面採用サポートしてるレベルで天と地の差があるよね
例えば>>522もbool値がthenでOptionを生成してそれをfilter_mapが受け取ることで簡潔なコードになっていたり

559 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 21:23:13.02 ID:faeKJv0z.net]
そこはfilterとmapの方が分かりやすい

560 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 21:32:28.43 ID:7cb0HHrx.net]
一般的にfilter_mapはわかりやすと速さを両立
だからわざわざfilter_mapやfilter_map_okが用意されている



561 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 21:35:05.28 ID:faeKJv0z.net]
そんなところは全く速さに影響しないと思うよ

562 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 21:43:21.73 ID:LVblziyo.net]
>>553
その種類のイテレータを2段は最適化前はもちろん速さに影響するけど
最適化により最終コードが同一コードになることを確認したということ?

563 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 21:49:32.84 ID:faeKJv0z.net]
お前は速くなることを確認したんかい?w
俺は出来るけど速くならないことを確認する必要がないと判断したw
お前は恐らく出来ないw

564 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 21:58:49.13 ID:S0ETBIy2.net]
コードそのままならイテレータ2つより1つの方が速いと明白なので
速さが同じと主張する>>555が最適化で同じコードになることを示す必要がある

565 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 22:05:07.99 ID:faeKJv0z.net]
明白じゃねーよwwwww

566 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 22:19:03.24 ID:ONkUn4dy.net]
たぶん>>557氏はイテレータの動作原理を知らないのだと思う
例えばfilterは構造体Filterを返しそのメソッドnext()がイテレータを進めるごとに呼ばれる
同様にmapは構造体Mapを返しそのメソッドnext()がイテレータを進めるごとに呼ばれる
最適化前はそれら二重のオーバヘッドがある

567 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 22:24:52.40 ID:qNBuWQhB.net]
速さに関して議論するなら最適化のコードがどうなるかを確認すべきでは
特にイテレーターアダプターを何度も噛ませてもfor文相当のコードが生成されるというのはrustの売りのひとつだよね

568 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 22:29:02.79 ID:IFNw/pUN.net]
もし最適化後に有意に速度差があるなら、それは性能バグとしてIssueにあげるべき問題だと思う

569 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 22:31:57.85 ID:IHLBrgoM.net]
>>559
その通りで最適化で非常に効率な最終コードとなる
ただし今回のケースでfilter().map()がfilter_map()と同一コードになるかどうかは自明ではない
したがって>>553に立証義務がある

570 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 22:36:47.68 ID:faeKJv0z.net]
立証義務なんてねーだろwwww
できないからって他人に頼るなwwwww



571 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 22:38:48.81 ID:IFNw/pUN.net]
意味的に同じことやってるんだから、理想的な最適化コンパイラは全く同じバイナリを吐くはずで
遅くなるはずってのも別に自明ではないのでは

572 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 22:46:51.69 ID:IHLBrgoM.net]
>>563
意味の同じプログラムが最適化で常に同じコードになるかどうかは自明ではない
そしてそれを期待することはよいが前提としてはいけない
自明ではないことを同じと主張する側に立証義務がある

573 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 22:48:42.58 ID:faeKJv0z.net]
できないんだねwwww
rustの吐くコードすげー見にくいしなw
それ以前にアセンブラ読めなそうw

574 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 22:52:00.13 ID:IFNw/pUN.net]
>>564
ん?別に同じになるのが自明とは言ってないよ
どちらも同程度に自明でないって言ってるだけ
立証はまぁやりたい人がやればいいんじゃない

575 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 22:57:38.05 ID:s2P7MscG.net]
>>565
> rustの吐くコードすげー見にくいしなw

無知っぷりを曝け出してるな

576 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 23:14:09.53 ID:faeKJv0z.net]
お前が無知なだけw

577 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 23:29:12.99 ID:OpaED0hw.net]
>>565
LLVMがアセンブリを吐いてることも知らないのか

578 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 23:31:17.03 ID:faeKJv0z.net]
ビビリ単発IDが何もかもを証明しちゃってるw
お前は何も分かってないw

579 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 23:50:47.22 ID:76PcfavB.net]
>>529
C++ではそんなに簡単には書けない

580 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 23:59:39.29 ID:faeKJv0z.net]
C++でも簡単に書けるよw
C++20で導入されたrangeでも使ってみw
より古い規格でもユーザーライブラリを使えばRxっぽい記述は簡単に出来る
自分で書くと難しくはないが骨が折れるタイプの実装
並列化を意識しない限りだけどw
まあ並列化を意識しないで簡便さを意識すれば無理にRxを使う必要もないけども・・・



581 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 00:00:49.69 ID:Mo7HNly3.net]
>>572
無理でしょ
実際に書いてみ

582 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 00:03:10.42 ID:slshVm4c.net]
加えて言えばRxでなければ上限を意識したループで書けるのでメモリ確保が最適化できるし、手でinlineにする部分を選べる分より速く書ける可能性もあるw

583 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 00:03:27.72 ID:slshVm4c.net]
>>573
いくらくれる?

584 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 00:10:24.15 ID:eD3MnnxT.net]
>>574
無理だ

585 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 00:13:29.40 ID:slshVm4c.net]
君にはそうなんだねw可哀想にねw

586 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 00:37:03.66 ID:3Q/aNMKI.net]
前スレの時からそうだけどRustのコードばかり出てくるスレ
C++で同じコードを書くと長く見難くなってしまうからだろうけど

587 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 00:49:14.78 ID:slshVm4c.net]
C++20なら普通に同じくらいw
あるのはRustの不慣れな部分コードねw まあこのレベルの作業に良い悪いもないけどw
君等のお勉強()にはいいんじゃないのw

588 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 03:33:36.54 ID:ljbCBN/E.net]
>>524のC++バージョン教えて

589 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 06:33:28.96 ID:slshVm4c.net]
これだけヒント出してやったのにまだ書けないのやばくね?w

590 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 08:39:50.87 ID:q9WLoJ2B.net]
>>542
変数の型を必要最低限の小さいインタフェースで宣言するのが嬉しいのに

とか言っているのに、使わない部分も含めてインターフェイスを制限する変数の型制限を有難がるのは笑いどころでしょうか?
「変数の型を固定して、コーダーの想定外の動きをしないように限定する」なら、そういう考えをもあるよね、となるけど。



591 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 19:44:54.15 ID:MDox3gf5.net]
>>580
手間がかかって分かりにくいのでC++でやるのは不向き

592 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 21:03:36.45 ID:slshVm4c.net]
>>583
この人も出来ないタイプなんだねw そういうことは全くないよw

593 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 21:36:44.00 ID:w8aoFpzv.net]
>>584
Rustのように楽にコード書けるの?

594 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 21:41:42.97 ID:slshVm4c.net]
>>585
楽かどうかは主観なので、まず自分でやってみれば?
このレベルなら俺はどちらが楽とかはないよw

595 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 22:10:37.73 ID:HiGga5GH.net]
9割9分はRustの方が楽にプログラミングできる

596 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 22:13:55.40 ID:slshVm4c.net]
単発IDは自作自演だから信用ならんのだよねw

597 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 23:01:40.37 ID:l4s3ZEj8.net]
ほとんどのケースでC++よりRustが簡潔になることは皆承知

598 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 23:44:11.33 ID:slshVm4c.net]
お前がC++使えてないだけw
変わらないよw
単発IDは自作自演

599 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 06:24:53.41 ID:GZmTU31E.net]
>>590
あちゃ、痛いところつかれましたわ

600 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 08:29:04.12 ID:yuJH1G8D.net]
変わらない と連呼するだけの簡単なお仕事ですw



601 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 08:34:00.61 ID:DslNhsx1.net]
単発IDが皆承知というだけで、ヒントも出したのにC++書けないバカが悪いw

602 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 08:35:31.99 ID:GnnMuKUb.net]
Rust信者がたくさん居るかのような見せかけのIDコロコロ

603 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 14:50:55.94 ID:QSBhdvNV.net]
公平に見てここまでに
Rustでの実装コードはある>>522 >>524
C++での実装コードはない
不利なのはC++側

604 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 15:08:06.66 ID:DslNhsx1.net]
必要だと思うなら自分で書けよwwww
書かなくても分かるから書いてないだけでw
両方分かる人はちゃんと言葉で説明できるからw

605 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 15:10:45.07 ID:DslNhsx1.net]
そもそも分からない言語があるのにこういうスレに来る方が間違いなんだがw

606 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 15:57:28.84 ID:+R/acvy/.net]
>>595
やめたれw

607 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 16:01:08.28 ID:unVMuDSw.net]
口だけでコードとか全然書けないヤツってよくいるよね

608 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 16:04:54.04 ID:DslNhsx1.net]
単発ID君悔しいのねw
俺は永遠に返事し続けるよw 君がC++使えるようになる日が来るといいねw

609 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 16:11:35.17 ID:+R/acvy/.net]
>>599
いるよなw
コード書いたようが早いような言い訳はいっぱい書けるのになw
言い訳だけはいっぱい書けるんよw

610 名前:デフォルトの名無しさん [2022/03/19(土) 16:12:10.15 ID:m5PNQvz6.net]
>>547
互換性が壁になるのは、長く広く使われてる言語ではどうしようも無いしなぁ。
だから言語も新しく作られるわけだけど、新しいものは認めません!という奴はいつだっている。



611 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 16:13:51.10 ID:M61n5/yF.net]
もう少しわかりやすくして
このsubsetsイテレータをC++で実装すればいいんだよね

fn subsets<T>(input: &[T]) -> impl Iterator<Item=Vec<&T>> {
let len = input.len();
(0..(1 << len))
.map(move |bits| (0..len)
.filter(|index| bits & (1 << index) != 0)
.map(|index| &input[index])
.collect())
}

fn main() {
let input = ["a", "b", "c"];
for s in subsets(&input) {
println!("{s:?}");
}
}

出力結果
[]
["a"]
["b"]
["a", "b"]
["c"]
["a", "c"]
["b", "c"]
["a", "b", "c"]

612 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 16:30:53.75 ID:kMuw3v3E.net]
>>602
置き換えのためのテスト手順なんかも考えずに新しいものにすればいいって言い張る老害も
たくさんいるんでその辺はどっちもどっちだがな。

613 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 16:40:18.91 ID:DslNhsx1.net]
filter_mapがfilterとmapに分かれただけじゃんwwww
マジでそんなのを何度もブラッシュアップするレベルでは俺には一生追いつけないぞw
どうでもいいけどクロージャ(ラムダ)の引数を次のクロージャで使うのは気持ち悪いのと結局collectしちゃうのはイマイチだねw
あと生成コードの比較、もしくは時間測定は出来たのか?w
何度も言うが、誰でもどちらの言語でも同じように書けるぞw

614 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 17:31:22.77 ID:M61n5/yF.net]
>>603
やってみたがC++の従来のイテレータ仕様が悪すぎることが敗因
なのでC++20からのstd::rangesでかなり改善できる
ただしRust版ほどシンプルに仕上がらないな

>>605
勘違いで詰まらない言いがかりを付けてくるな
そこまで言うならばC++版のコードはおまえに任せる

615 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:10:48.21 ID:DslNhsx1.net]
単発IDがたまに連続させたって意味ないんだけどw
その辺はとうに>>572に書いたよね?w まだ出来ないの?wwwww

616 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:22:18.16 ID:u/mznaJY.net]
>>605
> クロージャ(ラムダ)の引数を次のクロージャで使うのは気持ち悪い

意味不明すぎ
クロージャを理解できていない?

> 結局collectしちゃうのはイマイチだね

わかりやすくcollectしてるだけだろう
collectを外せばイテレータを返すイテレータとなるのは自明

617 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:31:58.03 ID:DslNhsx1.net]
またID変えて忙しいやつだなwww
1つ目の点は細かいが、クロージャを外に出したいと思ったときに不自由なんだよw
2つ目の点は遅延評価をわざわざ使うなら、collectしちゃうとロスが発生するのは分かるだろw
例えばコンソールに出力する場合、そのままiteratorをぶん回したらメモリ要らないのに、最初にcollect付けちゃってるから問題なんだよw
後から付ける事はできても、取り外すことは出来ないからw

618 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:34:23.73 ID:+R/acvy/.net]
エアプC++erの言い訳無限に出てくるよw

619 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:37:48.37 ID:LL+Ti59i.net]
もういいから正解書いてくれ。

620 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:38:41.55 ID:DslNhsx1.net]
ありゃりゃココで複垢まで使っちゃうと他で使えなくなっちゃうよ?w いいの?w



621 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:39:15.88 ID:+R/acvy/.net]
書けないのに書けるフリして可哀想やわ

622 名前:デフォルトの名無しさん [2022/03/19(土) 18:41:43.33 ID:LL+Ti59i.net]
複垢とか何を言ってるのかよくわからんが、正解がどうなるのか気になるので正解かいてくれ。
おれはC++もRustもそんなに知らん。

623 名前:デフォルトの名無しさん [2022/03/19(土) 18:43:31.88 ID:6MHm2WKJ.net]
>>545
手間を惜しまないならチュリ完ならなんでも出来るからなw

624 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:44:04.03 ID:DslNhsx1.net]
そんなに知らないならココ見るなよwwww 答えクレクレ君が来る場所じゃないw

625 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:44:08.25 ID:jyTBsiM0.net]
>>605
>どうでもいいけどクロージャ(ラムダ)の引数を次のクロージャで使うのは気持ち悪い

クロージャーは互いに独立しているので
引数を次のクロージャーで使うのは不可能です
根本的な理解が出来ていないのでは?

626 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:45:06.81 ID:DslNhsx1.net]
チュリ完はプログラミング出来るというだけで、何でもは出来んよw 知ったかくんw

627 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:46:38.78 ID:DslNhsx1.net]
入れ子のクロージャでって意味の次のだよw ただの順番w

628 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:47:35.76 ID:+R/acvy/.net]
だっさwwww
言い訳ばっかやんwww

629 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:49:45.68 ID:DslNhsx1.net]
分かる人は最初ので全部分かってるから、何もしないw
バカが煽ったり質問したりするから永遠に反応してやってるだけw

630 名前:デフォルトの名無しさん [2022/03/19(土) 18:49:59.87 ID:LL+Ti59i.net]
いやくるなと言われてもくるけどね。



631 名前:デフォルトの名無しさん [2022/03/19(土) 18:50:09.75 ID:m5PNQvz6.net]
相変わらすc++コードは全然でてこないな。

632 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:50:51.71 ID:+R/acvy/.net]
C++書いたほうが早いのに言い訳しか出てこないの怖いわw

633 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:54:53.91 ID:DslNhsx1.net]
Rust推しの駆け出し君がC++を語るとか片腹痛いw

634 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:02:54.69 ID:cmtG3lS6.net]
>>619
何を言ってるのかわからん
皆にイチャモンつけまくっているだけにみえる
君のsubsetsイテレータ実装を出したまえ

635 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:04:05.03 ID:DslNhsx1.net]
君等のような駆け出し君がやれマウントだドヤ顔だ上から目線だのと言いつつ、自分の仕事に真摯に取り組まず、自身の評価ばかり気にして待遇がどうの周りがどうのと言い始めて辞めた挙げ句、技術も経験もないままニートになってるから社会問題になってるんだよw
まずは足元を固めてじっくり1つのことをやった方がいいと思うぞおっさん的にはw

636 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:06:49.48 ID:+R/acvy/.net]
お前がなw

637 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:09:27.82 ID:DslNhsx1.net]
あれれ?当たっちゃった?w 頑張れよw

638 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:10:49.95 ID:GZmTU31E.net]
>>625
痛いのは左の腹ですか?それとも右脇腹ですか?

639 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:14:41.36 ID:DslNhsx1.net]
あえて訂正してこないところが出来るね君w 背中側の腹だよw

640 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:33:55.07 ID:YQxYhoLA.net]
>>605
もちろんcollect()を外せばそのままイテレータを返すイテレータを返す関数になる

fn subsets<T>(input: &[T]) -> impl Iterator<Item=impl Iterator<Item=&T>> {
let len = input.len();
(0..(1 << len))
.map(move |bits| (0..len)
.filter(move |index| bits & (1 << index) != 0)
.map(|index| &input[index]))
}



641 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:50:41.66 ID:YQxYhoLA.net]
あとはID:DslNhsx1氏がC++バージョンを書けるかどうか

642 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:52:06.07 ID:+R/acvy/.net]
やめたれw

643 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:57:39.82 ID:DslNhsx1.net]
あれあれ?全文がなくなって動かなくなってるねwwww
変更はそこだけでいいのかな?w
C++はお前が書けないのがおかしいんだよw

644 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 20:09:59.31 ID:YQxYhoLA.net]
>>635
言いがかりをつけることしか出来ないダメなやつだな
自分でコードを書けないってことなんだろ
どうぞ >>632用の簡易動作確認コード
let input = ["a", "b", "c"];
for mut iter in subsets(&input) {
println!("({})", iter.join(","));
}

645 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 20:41:03.66 ID:DslNhsx1.net]
# こんな感じねw
cargo install cargo-edit cargo-geiger
cargo new subsets
cd subsets
cargo add itertools
cat >src/main.rs <<EOF
#![forbid(unsafe_code)]
use itertools::Itertools;
fn subsets<T>(input: &[T]) -> impl Iterator<Item = impl Iterator<Item = &T>> {
let len = input.len();
(0..(1 << len)).map(move |bits| {
(0..len)
.filter(move |index| bits & (1 << index) != 0)
.map(|index| &input[index])
})
}
fn main() {
let input = ["a", "b", "c"];
for s in subsets(&input) {
println!("[{}]", s.format(","));
}
}
EOF
cargo run
cargo geiger
# Run cargo-geiger!

646 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 20:42:40.39 ID:DslNhsx1.net]
まあ外部に括りにくいのが気になるのは趣味だから修正はやめといたw
joinはformatに変えただけw
そのまま動くというのはこういうコードw

647 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 21:18:01.62 ID:OlJIHMMJ.net]
相変わらずコピペ&改変だけしかできないガイガー君だ
ゼロからコードを書くのは苦手だからC++版の方は手付かずのままなわけだ

648 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 21:27:48.52 ID:jYZm0dN8.net]
金もらわないとコード書かないんじゃなかったのか
機嫌が良かったのかな?

649 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 21:39:07.36 ID:DslNhsx1.net]
俺は書けるけど、お前らが書けないのに俺が書いたら書かされた感があって嫌なだけw

650 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 21:44:20.43 ID:LL+Ti59i.net]
残念だな。エレガントなC++のコードみたかったわ。



651 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 21:47:05.64 ID:DslNhsx1.net]
じゃあエレガントでないC++のコードを見せろよw

652 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 21:50:10.65 ID:LL+Ti59i.net]
いやおれは書かないけどね。なにをいうてんの。






[ 続きを読む ] / [ 携帯版 ]

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

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