C++相談室 part140

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2019/01/13(日) 05:56:22.70ID:9RrR7Arz
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

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

前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/
C++相談室 part139
https://mevius.5ch.net/test/read.cgi/tech/1538755188/

このスレもよろしくね。
【初心者歓迎】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

0952デフォルトの名無しさん2019/02/20(水) 19:43:28.58ID:6H7Ao8nE
ポインタとの互換性を持たせるため

0953デフォルトの名無しさん2019/02/20(水) 19:54:35.48ID:V5JGZApS
イテレータを ++ で進めたり、比較演算子で終わりの判断をするため、かな。
つまり「ポインタとの互換性」か。
シンタクスとかセマンティクスとか、専門用語が出る部分だね。

あと、ドット演算子はオーバーロードできないでしょ。

0954デフォルトの名無しさん2019/02/20(水) 19:59:56.78ID:vIxNp1pR
std::next()って出来たけど、これは配列のアドレスと互換性を持たせるためかな。
std::advance()のように参照を渡すのがダメだとすると、戻り値で何かを返す場合、イテレータを返せなくなるので、どういう設計にしたらいいのだろ。

0955デフォルトの名無しさん2019/02/20(水) 20:19:38.87ID:sr7oPl81
>>943
TclTkのcanvasが便利

0956デフォルトの名無しさん2019/02/20(水) 22:16:30.19ID:QUf2KVgt
#include <chrono>
namespace user {
using std::chrono::operator""ms;
};

上の場合msというユーザー定義リテラルをuser名前空間内に定義した扱いになる?

0957デフォルトの名無しさん2019/02/20(水) 22:23:30.88ID:MRDgobfX
tclとか嫌だよ

0958デフォルトの名無しさん2019/02/20(水) 22:52:29.12ID:ZG48jy4+
multimapである値に対応する全てのキーを列挙するのってどうやるの?

0959デフォルトの名無しさん2019/02/20(水) 23:07:04.44ID:QUf2KVgt
std::multimap<int, double> m;
m.insert({ 1, 2.0 });
m.insert({ 2, 2.0 });
m.insert({ 3, 2.0 });
m.insert({ 4, 2.0 });
m.insert({ 5, 2.0 });
//C++17
for (auto [key, value] : m){
std::cout << key << ": " << value << std::endl;
}
//C++11
for (auto&& p: m){
std::cout << p.first << ": " << p.second << std::endl;
}

上のコードで全要素参照できるから、valueかp.secondの値を比較すれば?

0960デフォルトの名無しさん2019/02/20(水) 23:12:45.46ID:ZG48jy4+
>>959
毎回全要素にアクセスするべきなのですね
分かりました

0961デフォルトの名無しさん2019/02/20(水) 23:25:09.65ID:QUf2KVgt
キーと値の設定間違えてない?

0962デフォルトの名無しさん2019/02/21(木) 08:23:36.74ID:9OrJvQb/
>>884
楽なC#を使わないでC++を使い続けるのは馬鹿にみえる。それと同じだろうな。
Cを使わないでASMを使い続けるのも同じ。
C++を使わないでCを使うのも同じ。
まあでもそれなりにターゲットによってはそれを使わざるを得ない場合がある。
マイコンの場合はASMが基本だがCでも書けるようになってきた。殆ど
の場合はCでも書ける。しかし条件付きではあるがC++でも書けるようになってきた。
ただスピードも遅いメモリも少ないマイコンでは便利だからといってもvectorやstringは
あまり使わない方がいい。使う場合でも節度をわきまえて使わないとね。
馬鹿なんて言葉も使うには節度がいる。でないと単なる馬鹿にしか見えない。

0963デフォルトの名無しさん2019/02/21(木) 09:34:18.02ID:ckwx5Bag
マイコンをどう使うのかわからんが
定期的にリセットできるならともかく、
C++のようにオブジェクトの生成消滅繰り返すなんて言語道断だからな。

0964デフォルトの名無しさん2019/02/21(木) 09:36:40.40ID:zicwhEg7
ものによる

0965デフォルトの名無しさん2019/02/21(木) 10:55:49.95ID:AiQPvA+F
マウンティング用パワーワードが「ものによる」
コレ言う奴は大抵ばか

0966デフォルトの名無しさん2019/02/21(木) 10:56:14.09ID:zicwhEg7
そうですか

0967デフォルトの名無しさん2019/02/21(木) 12:41:59.00ID:Jz+qZwo4
C++がCの唯一の子孫というわけでもないし

0968デフォルトの名無しさん2019/02/21(木) 13:09:43.80ID:WaMgOh2Z
C#はCとは全く異なる言語だと思うな。似ても似つかない。

0969デフォルトの名無しさん2019/02/21(木) 18:27:00.81ID:giZIG96n
>>968
快適なC++、それがJava。

0970デフォルトの名無しさん2019/02/21(木) 18:32:29.46ID:2gpubT7a
単価半額以下の屑言語。
悔しかったらデバドラ書いて売ってこい

0971デフォルトの名無しさん2019/02/21(木) 18:52:26.41ID:ZuxKbWfp
>>969
C#ならまだしも今更Javaはないわ

0972デフォルトの名無しさん2019/02/21(木) 19:25:32.37ID:WaMgOh2Z
C#に一番近い言語は、VBかも知れない。
VBは馬鹿にされるので、名前がCに近くなって喜んでいる人がいる気はするが。

0973デフォルトの名無しさん2019/02/21(木) 21:34:32.15ID:zicwhEg7
Cの影響を受けているという意味では現役の言語のほとんどが影響を受けているのでみんなCの子孫

0974デフォルトの名無しさん2019/02/21(木) 21:49:22.41ID:w/7GK1kk
PostScript 「せやな」
APL「せやせや」

0975デフォルトの名無しさん2019/02/21(木) 22:03:54.15ID:55eQHh2l
全部FORTRANの子孫で結論

0976デフォルトの名無しさん2019/02/21(木) 23:43:22.72ID:ckwx5Bag
>>962
ちょっと違うんだよな
vectorやstringは普通にC++でプログラムできる環境なら使って問題ないだろ。。
でも、アルゴリズムを明示したいとかあるのよ。
DSPでアセンブラでコーディングさせる外注さんに手渡す仕様書としてCでコーディングして渡すとかね。
レジスタ を short r0,r1,r2;とかおいて、そのDSPの構造真似たりして。
C++のライブラリなんか使ってしまうと肝心なアルゴリズムが見えなくなってしまう。

0977デフォルトの名無しさん2019/02/21(木) 23:49:54.40ID:ckwx5Bag
>>972
経緯からするとJavaから阻害されてC#立ち上げたけど、
たしかに書いてるとBasic臭がするよなぷんぷんと、VBはあんま詳しくないけど、
はじめて言語に触れたN88 Basic臭がツーンと脳裏のそこから蘇ったわ。思い出したくないヤーな感じ。
でもポインタ使えるのは確実にPost C
間接アドレッシング可能な言語はCの後継とみなしていいでしょ。

0978デフォルトの名無しさん2019/02/21(木) 23:58:57.84ID:zicwhEg7
疑似言語で書けよ

0979デフォルトの名無しさん2019/02/22(金) 00:15:39.44ID:pZ+8/QP0
>>976
> vectorやstringは普通にC++でプログラムできる環境なら使って問題ないだろ。。

C++は使うがvectorやstringはヒープ使うからNGの業界余裕であるから
というかこういうことに無頓着なやつはそれこそC#がお似合いだよ

0980デフォルトの名無しさん2019/02/22(金) 00:17:24.73ID:15zpzt8/
普通の環境じゃねえだろカス
マウント取りたいがために文盲になるなよゴミ

0981デフォルトの名無しさん2019/02/22(金) 00:20:30.83ID:pZ+8/QP0
いまどきC++を使う普通の環境って何さ?

0982デフォルトの名無しさん2019/02/22(金) 00:21:51.02ID:LT7BfZs3
競技プログラミング

0983デフォルトの名無しさん2019/02/22(金) 00:22:17.68ID:IIzWuIF1
普通とは

0984デフォルトの名無しさん2019/02/22(金) 00:24:11.03ID:pZ+8/QP0
競技プログラミングも時間制約あるから
バカみたいに動的確保、解放繰り返したらアウトになるよ
まぁどのみち趣味の領域だからご自由にだけど

0985デフォルトの名無しさん2019/02/22(金) 00:25:12.85ID:15zpzt8/
お前がこれを見てる箱はいったい何ですかねえ

0986デフォルトの名無しさん2019/02/22(金) 00:26:41.79ID:LT7BfZs3
質問なのですがスコープを抜けたら自動的にリソースを解放するクラスを作りたいのですが、
スマポ(メモリの解放)ならともかく解放がエラーになる可能性がある場合(ファイルのクローズとか)は
どう書けば良い
の?

0987デフォルトの名無しさん2019/02/22(金) 00:28:07.98ID:15zpzt8/
>>984
ならねえよ
適切なアルゴリズムであればどんな言語でも時間内に終わるように設定されているから

0988デフォルトの名無しさん2019/02/22(金) 00:31:00.86ID:vPOA5NhJ
>>981
ラウンドロビン型 & ガベコレ 持ってるOS環境だ
今時raspi程度のハードであればこの環境を期待できる。
RTOSやOSレスなどハードの一部として動作させたいアプリケーションならさにあらず。
業界で判断する話じゃなくアプリケーション内容で判断する内容だろがよゴミ

0989デフォルトの名無しさん2019/02/22(金) 00:31:39.71ID:LT7BfZs3
いや正解とか難易度が謎設定な競技プログラミングもあるから…
Top Coder Openとか…

0990デフォルトの名無しさん2019/02/22(金) 00:32:37.96ID:LT7BfZs3
ガベコレとか
なんと
贅沢な

0991デフォルトの名無しさん2019/02/22(金) 01:22:11.67ID:W4Z6mzSx
Quora には、C, C++, JavaScript, Java, Python, Web Development の
板はあっても、C#の板は無いらしい。

本場では C#に人気が無いのか。

0992デフォルトの名無しさん2019/02/22(金) 01:28:54.91ID:W4Z6mzSx
>>977
C#は、N88-BASICより、Visual Basic 臭がする。
前者は PC-8801 時代には人気が有った。PC-9801 時代には余りなくなったが、
PC-9801 版の N88-BASIC は「雰囲気」が違っていて、実は MS 製ではなく、
NEC製になってしまっていたからかもしれない。

0993デフォルトの名無しさん2019/02/22(金) 01:30:06.16ID:IIzWuIF1
C#もVBも.NETが前提だから、.NETを使う以上はどれも方言みたいなもんだろ

0994デフォルトの名無しさん2019/02/22(金) 01:38:49.66ID:W4Z6mzSx
考えてみれば、.NET の仮想コードは、BASIC時代に「中間言語」と呼ばれていた
ものと全く同じといっても過言ではないと思えてきたりする。つまり、C#自体が
BASICを変に拡張して使いにくくしてしまった変態言語に他ならない。

0995デフォルトの名無しさん2019/02/22(金) 01:40:23.87ID:HDWd0btt
今時、中間言語なしは少数派じゃないかという雰囲気があるが

0996デフォルトの名無しさん2019/02/22(金) 01:42:25.76ID:pZ+8/QP0
>>985
あのな、OSにしろWebブラウザにしろお前が普段普通にやってるような雑な作り許されないから
今時c++使ってるとこってそういう限界せめる領域
趣味ならご自由に、二度目

0997デフォルトの名無しさん2019/02/22(金) 01:43:35.28ID:W4Z6mzSx
よく探すと、Quora にも C# 板があり、

C++ 758.3K followers
C# 276K followers

となっているようだ。C# は C++ の 1/3 の人気しか無いらしい。

0998デフォルトの名無しさん2019/02/22(金) 01:51:30.87ID:15zpzt8/
>BASICを変に拡張して使いにくくしてしまった
wwwwwwwwwww

0999デフォルトの名無しさん2019/02/22(金) 01:54:47.58ID:15zpzt8/
>>996
????
俺が使ってるPCやスマホでも様々な用途で山のようにC++で書かれたソフトウェアが走ってるんだが???
お前のとことではOSやブラウザでしか使われてないのか不思議だな

1000デフォルトの名無しさん2019/02/22(金) 02:02:01.14ID:W4Z6mzSx
goto 文は行番号と相性が良くて、当時、実はスパゲッティーになってなかったな。
構造化命令を使わなくても、行番号のおかげで見やすかった。

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 39日 20時間 5分 39秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。