C言語なら俺に聞け 146

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 839f-AnMQ)
垢版 |
2018/04/30(月) 04:47:37.50ID:XX4FB8lc0
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/


C言語なら俺に聞け 144
https://mevius.5ch.net/test/read.cgi/tech/1514025223/

次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
-
※前スレ
C言語なら俺に聞け 145
http://mevius.5ch.net/test/read.cgi/tech/1519046038/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2018/06/23(土) 14:05:45.27ID:UiVIxiJp0
遅くていいならREP STOSD命令

CPUを使わない方法もいくつか
DMAを使ったり
SRAMの場合デバイスリセットで0クリアされたり
FLASHだとイレースコマンドとか

PCでDMAを使う簡単な方法は
GPUのメモリをゼロクリアしておいて転送する
2018/06/23(土) 14:06:13.14ID:j+rjEHjB0
大抵のCPUにあるだろう
2018/06/23(土) 14:07:19.32ID:UiVIxiJp0
>>262
あ、ごめんコピーじゃなくてクリアの間違い
2018/06/23(土) 14:09:24.26ID:UiVIxiJp0
>>267
普通は無いだろ
REP STOSDだって単なるループ
2018/06/23(土) 14:15:50.50ID:UiVIxiJp0
レジスタからメモリにコピーすると考えれば
コピーでも間違いではないけど
2018/06/23(土) 14:18:09.09ID:xQlm4MUY0
だから実測しろっての
272デフォルトの名無しさん (ブーイモ MM43-/QFz)
垢版 |
2018/06/23(土) 14:42:28.77ID:VDaSN7SRM
>>271
妄想で生きてる奴には何言っても無駄だよ
2018/06/23(土) 14:45:35.16ID:UiVIxiJp0
>>221の回答なら
「環境依存、実測しないとわからない」
で終わり
2018/06/24(日) 12:30:50.34ID:wvlf5m9A0
前工程で処理するのが最善
2018/06/25(月) 12:44:11.34ID:UNYa6OHo0
というか、高速化しなきゃなやばいかなー と思ったのなら
void SAKUJO(dst,size){ memset(dst,0,size); }
くらいクソ適当に書いておいて、「あとで」 ごちゃごちゃいじればよろしい

それか、>>274のように 事前に済ませておく かだな
276デフォルトの名無しさん (アウアウカー Sa93-ndvs)
垢版 |
2018/06/25(月) 12:54:48.48ID://DXoKuSa
ま、しかし、よくよく考えてみれば全てを同じ値で埋めておかねばならない状況はあまりないのではないか?
面倒だから一気に全て0にしておいて後から必要な所を埋めるなんてのはよくあるかも知れないが。
そういうのでも calloc() でメモリ確保するなら考える必要ないよな。
2018/06/25(月) 12:57:20.57ID:ol2B/pPQd
誰がどんな意図で書いたかわからないもの
わざわざ変えなくていいよ
問題があるとわかった時点で考えればいい
2018/06/25(月) 13:16:25.31ID:aMpIUa/b0
0クリアの話題でると思い出す事件があったな
某サイトでは業務Gと制御Gの2グループがあって
制御Gは業務Gの処理(データ値)には介入しないという建前があった
あるレコードを更新する時、その整合性の確認をとるため、
制御Gは、キーとなる構造体をmemcmpして一致の判定していた
業務Gは、処理関数の中で構造体を自動変数として確保し、
メンバーに一つ一つ値を設定していた
キーを指定し更新処理を呼んでも一致するデータが見つからないと
エラーが返される結果となった
何故エラーにされるのか、しばらくの間、原因が分からなかった。
279デフォルトの名無しさん (アウアウカー Sa93-ndvs)
垢版 |
2018/06/25(月) 13:19:21.95ID://DXoKuSa
={0} での初期化を布教した方が良いね
2018/06/25(月) 13:29:18.12ID:ol2B/pPQd
>>278
初心者がいると大変だよね
2018/06/25(月) 20:22:42.87ID:HTnjHonAM
>>278
Paddingのゴミだろ
構造体をmemcmpの時点でダメ
2018/06/25(月) 23:31:05.64ID:LSXBma6V0
みんなわかってるからそんな事いちいち書かなくて良いんだよ
283デフォルトの名無しさん (ワッチョイ 7fd2-XQuB)
垢版 |
2018/06/26(火) 07:01:33.06ID:tL55F/sw0
H8:EEPMOV
2018/07/01(日) 01:54:22.43ID:WAYB1PLl0
すいません質問です
C言語の勉強をしようと思っているのですがIDE?というのが沢山ありすぎてどれを選べばいいのか分かりません!
迷える子羊に何卒ご教授下さいませ・・・
2018/07/01(日) 02:07:14.10ID:8/sCKaWm0
>>284
MSVC(VS)
沢山あるってのがよく分からないが、「入門用」とかいうのは全てゴミだから止めとけ
286デフォルトの名無しさん (ワッチョイ 02d2-ZkQx)
垢版 |
2018/07/01(日) 02:08:06.13ID:T+EQOOQd0
>>284
WindowsならVisual Studio Community
LinuxならEclipse CDT
Macなら標準のXCode
最初はIDE使わないでテキストエディタでやるのがいいとは思うがね
2018/07/01(日) 02:21:34.53ID:8/sCKaWm0
>>284
> 最初はIDE使わないでテキストエディタでやるのがいいとは思うがね (>>286)
これは絶対無いから止めとけ。

環境整備は初心者では無理なので、もし先生がいるのならIDEの立ち上げまではやってもらえ。
そして最初からIDEを使って、ブレークポイント貼りまくってステップ実行し、
納得いくまで変数をウオッチしろ。

C#のIDEなら文法エラーはサジェストが出てOK押すだけで治る。
(C系でそこまでやってくれるものがあるのかは知らん)
括弧の対応すらしてくれないテキストエディタなんて、
今時原稿用紙と手書きで草案を練れ、というようなもの。
勿論それが合う人もいるが、普通はないよ。
2018/07/01(日) 02:37:32.75ID:TDXiV/Pp0
IDEもよくわからん状態からCをやるのはよした方がいいと思うけどなあ
2018/07/01(日) 02:42:30.52ID:8/sCKaWm0
>>288
これはその通り。Cは入門用の言語ではない。
Cしかなかった昔ならさておき、今Cから始める必要はない。
290デフォルトの名無しさん (ワッチョイ 61b3-7NWm)
垢版 |
2018/07/01(日) 02:51:14.35ID:aoQiIM1T0
>>284
IDEでクエスチョンがつくということは、プログラミング初心者と見た。もしそうなら、Cはオススメしない。もっといい言語がたくさんあるので、プログラミングがどういったものであるかを、他の言語でざっくり掴んでから、Cに取り組むことをお勧めする。
その頃には、IDEがなんであるか、どのIDEが自分に向いているかは、もうわかっているはずだ。

どうしてもCに今すぐ取り掛からなければならないという事情があるなら、

MFCを使わなくてはならないなら、visual studio。
そうでなければ、またはターゲットがWindowsでなければ、Eclipse

どちらにせよ、タップリ不幸になれるので覚悟すること。
2018/07/01(日) 03:12:41.99ID:WAYB1PLl0
>>285-290
皆様遅い時間なのに丁寧に答えて下さり感激の至りですありがとうございます
C言語を勉強しようと思っているのは使う予定があるからなんですすいません・・・
取り敢えず教えてもらったものDLして勉強します、重ね重ねありがとうございます!
2018/07/01(日) 03:22:52.22ID:8/sCKaWm0
>>291
> 使う予定があるから
こんなところで聞かずに先生(先輩/上司)に聞け。
IDEの善し悪しも自分で判断出来ない奴が自分だけで「使う」つもりなら事故るから止めとけ。
293デフォルトの名無しさん (ワッチョイ 79b3-HrKv)
垢版 |
2018/07/01(日) 07:33:37.83ID:VIP13YQk0
Visual StudioにもLinuxターゲットがある。
2018/07/01(日) 08:01:39.26ID:Bxv8fbGo0
ターゲットの問題ではなくて動作環境の問題だろ
LinuxにVisualStudioは入れられないよ
295デフォルトの名無しさん (ワッチョイ 79b3-HrKv)
垢版 |
2018/07/01(日) 08:04:14.93ID:VIP13YQk0
じゃあWSL使えば。
2018/07/01(日) 08:09:46.71ID:Bxv8fbGo0
何を言ってんだ?
WSLはWindowsだろ
297デフォルトの名無しさん (ワッチョイ 79b3-HrKv)
垢版 |
2018/07/01(日) 08:19:16.03ID:VIP13YQk0
Windowsのほうがいいし。
2018/07/01(日) 08:40:05.74ID:Bxv8fbGo0
いい悪いではなくてただの事実
自分もVisualStudioは使っているよ
Windows環境では最良のIDEだと思ってる
2018/07/01(日) 11:33:42.78ID:s3Ywi94+0
ポエムや日記用にもテキストエディタの2〜3は入れてていいんじゃないの

それとコマンドプロンプトの併用も考えてるんじゃない
今の時代の「C言語をやる初心者」は、CUIを知らないんだよ
コマンドを使ってみないと、何を何のために作ってるか分からなくなる
巷で言うスマホの「アプリ」とかのGUIじゃなくて、圧倒的に古いCUIなんだから、今の若いモンには明らかに異質なものを作らせるんだよ
出来上がってくるソフトウェアは「黒い窓」なる謎の儀式でしか動かない極めつけの謎だ
2018/07/01(日) 12:41:57.93ID:8/sCKaWm0
つかそもそもEclipseっていいのか?
あれ、Linuxだと他選択肢がないから使われてるだけでは?

Cで使ったことはないが、Windows/NetBeans/PHPはだいぶ酷かったぞ。
もっさりしてるし、不安定だし。
この組み合わせが最悪なだけかもしれんが。
そして一応EclipseとNetBeansは検討対象らしいからな。
(俺的には比較するまでもなくVS>>>NetBeans)

VSとEclipse両方使っている奴いる?いたら感想を。
2018/07/01(日) 14:04:36.18ID:iXNUK265M
今のところvsと肩を並べられるIDEなんてないので当然eclipseもvsより劣るわけだが、
リファクタリング機能だけは圧倒的にeclipseのほうが優秀だった。
独自環境用の多数のIDEがオープンソースのeclipseから派生して作成されてるので、個々に使い方を覚えなくていいのもメリットかもしれない。
使い始めた頃はプロジェクトとビルドルールの管理と、日本語が独特なのが、取っ付きにくかったかな。

まあ言いたかったことは、vscode輝け
2018/07/01(日) 14:34:44.13ID:8/sCKaWm0
>>301
> リファクタリング機能だけは圧倒的にeclipseのほうが優秀だった。
それってCについてだよな。MSはVSについてはC#しかやる気出して無いから。なお、

Q. どうしてVC++のエディタはC#に比べて糞なのですか
A. だってお前らどうせemacsとか使ってエディタ機能使わないじゃん(なお公式)

だったはず。
そのとき、「え?そんなに違うんか?」と思って試し、その差に愕然とした覚えがある。
俺は最新環境を使ってはいないが、最新でもだいぶ見劣りしたと記憶している。

リファクタリング機能とかはユーザがアドオン書けた方がいいから、
それもあってVSCodeなのだろうね。
2018/07/01(日) 16:25:12.59ID:skMhceRea
Cぐらいならvimだけで十分だと思うがな
2018/07/01(日) 16:35:43.45ID:jK3pbtIRa
まずvimの操作を覚えて、開発するならそれなりのプラグイン入れなきゃならないんですがそれは
2018/07/01(日) 16:45:23.34ID:skMhceRea
ブラグインなぞ不要
2018/07/01(日) 17:12:51.78ID:KJj1sYCg0
仕事や学校でCを使う予定があるなら、
現場で使ってる開発環境に合わせるのが最善だろう。
IDEの優劣よりも優先されるんじゃないかな。

今のご時世にCに関してまったくの素人だと、
Cを使うのにIDEが必須と勘違いしてる可能性もあったり。

任意のテキストエディタで.cファイルを打ち込んで
コマンドラインでコンパイル、実行という手順が
紹介されてない入門書や入門サイトがあるかも。
2018/07/01(日) 17:13:26.42ID:8/sCKaWm0
>>305
それはさすがに老害の発想だぜ。

今時のemacsはインテリセンスも出るし、
flyCheckで文法エラーもリアルタイムで表示される。
お前はそういうの知らずに言ってるだろ。
(なお、vimも同様だったはず)

最終的にはそういうのがうざくなって色々切ったりするけど、
俺は初心者こそIDE(というかゴテゴテの環境)でスタートすべきだと思ってる。

大体において、
「動きません。でも私のコードは完璧です。これはIDEのバグですか」と言ってくるんだから、
「ブレークポイントを全部の行に置いてループも1回ずつステップ実行して確認して死ね」
と返せないと意味無いだろ。
2018/07/01(日) 17:22:47.54ID:8/sCKaWm0
>>306
> 紹介されてない入門書や入門サイトがあるかも。
VSがそうですが何か?(なおC++)
https://msdn.microsoft.com/ja-jp/library/jj620919.aspx

てかマジな話、VSで閉じていいのならそんな知識いらんて。


> 現場で使ってる開発環境に合わせるのが最善だろう。
> IDEの優劣よりも優先されるんじゃないかな。
これはその通りだが。
2018/07/02(月) 00:22:55.41ID:MZb/U4ur0
>>300
>つかそもそもEclipseっていいのか?
>あれ、Linuxだと他選択肢がないから使われてるだけでは?

組込みだとマイコンのメーカーのIDE(コンパイラ)が
EclipseベースなIDEな事があるから
VSではなくEclipseに馴れるって意味で選択する意味はあるかな

実際組込み現場でCでの開発想定したこの書籍だと
Eclipseで開発する事を想定して書かれてる
http://amzn.asia/5PyjxPA


あと余談だけど今さらvimだのemacsだの時代遅れじゃね?
マルチプラットフォームで動くVSCodeやAtom選択した方が
学習コストも少なく高機能だと思うんだけど
2018/07/02(月) 01:24:09.53ID:Ael8RIVm0
>>309
> EclipseベースなIDEな事があるから
なるほどね。

> あと余談だけど今さらvimだのemacsだの時代遅れじゃね?
俺が勧めているわけではないが、「エディタ」という意味ではありだ。
「Emacsは100年のエディタだ」と言われるとおり、あれはマジで100年持つだろう。
そういう構造になっているし、実際今も余裕で現役だ。(Vimも同様)

最大の利点はDSLとしてのEmacsLispだ。(なお独立して使えるらしいが)
この点、VSCodeやAtomもOSSであり同レベルの拡張性を持ってはいるが、
ユーザーベースが違いすぎる。
今現在の状況なら、先に死ぬのはVSCodeやAtomの方だ。

学習コストなんて所詮慣れだし、数ヶ月もあれば問題ない。
当面使う予定がなければすぐに学ぶ必要性はないが、
時代遅れな事を肯定して欲しいのならそれは無理だ。

emacsとgdbは組み合わせて使うことは出来る。
ブレークポイント、変数等を表示出来るlispが提供されればそこそこ行けるはず。
もう既にあるかもしれんが。
2018/07/02(月) 20:45:33.13ID:egmwRQ41d
フォルダ一括コピーしたいです

c++だとファイルコピーにはCopyFileなるものがあるみたいなのだけどそれはフォルダのコピーはできないようなので、
他のものを探してたらSHFileStructでフォルダまるごとコピーができると知りました
これって再帰的に中身まで見てくれるのか見てくれないのか調べてたのですがわからなかったので
再帰的にコピーしてくれるか否か教えてほしいです
2018/07/02(月) 20:57:38.07ID:TkxJyVOaM
>>311
1つ目の回答みて
https://stackoverflow.com/questions/4725115/on-windows-is-there-an-interface-for-copying-folders
313デフォルトの名無しさん (ワッチョイ 119f-qY4E)
垢版 |
2018/07/03(火) 00:01:21.27ID:Dmx6jLMV0
>>311
そういうのはOSによって、あるいは使用するライブラリによってやり方が変わるから最低でもOSが何なのか書いて質問した方が良い。
2018/07/03(火) 01:16:11.07ID:F02z+tBP0
学生ならCLionも無料なのでおすすめ
VSCodeもまだ情報が少なめなものの悪くない
2018/07/03(火) 04:58:38.26ID:YXzbwHDm0
system("robocopy /? >tmp.txt");
system("notepad tmp.txt");
2018/07/03(火) 05:54:36.73ID:2wRh2EpV0
>>311
やって見りゃいいんじゃね?

>>313
>>311みてOSわからないボンクラは黙ってて
2018/07/03(火) 07:45:07.06ID:A8S8VjkX0
知らないなら書くなよ
318デフォルトの名無しさん (ワッチョイ 45fa-2e90)
垢版 |
2018/07/04(水) 21:52:51.64ID:gFgZc5FG0
HTQ
2018/07/04(水) 22:46:28.27ID:w3aVzChY0
やればわかる
やらない奴はいつまでたっても>>317みたいなボンクラなレスを返すだけ w
2018/07/04(水) 22:55:43.62ID:r5w7GwDZ0
迷わずいけよ!
2018/07/04(水) 23:02:16.01ID:dy7fWBja0
xcopyを呼び出すんじゃ駄目なのか?
車輪の何とかって気がするんだが
2018/07/05(木) 09:24:52.06ID:ppxwAApK0
SHFileOperation() はコピー先にフォルダが無い場合、再帰的にフォルダ作ってくれるね
ただ SHFILEOPSTRUCT の pTo に渡すパス文字列で
ディレクトリのセパレータが / はダメで \ じゃないと再帰がかかってくれない

D:\ 以下フォルダが無い状態で
pTo = "D:/aaa/bb/ccc/ddd";
SHFileOperation()
⇒ 「フォルダ ddd が作れない」  D:\ 以下のフォルダ状態は変わらず

pTo = "D:\\aaa\\bb\\ccc\\ddd";
SHFileOperation()
⇒ D:\aaa\bb\cc\ddd まで再起的にフォルダができる
2018/07/10(火) 12:40:53.64ID:PTerA0wX0
超初級で申し訳ないですが、以下のコードのどこに問題があるのか教えてください。
円の周長と面積を求めるものです。(半径は整数値で入力。)
コンパイルはできましたが、.exeファイルが実行不能状態です。


#include<stdio.h>
main()
{

int hankei;
double pi = 3.1415926535;
double enshu;
double menseki;

printf("半径を入力して下さい:\n");
scanf("%d",&hankei);

enshu = 2 * pi * hankei;
menseki = pi * hankei * hankei;

printf("半径%dの円の円周は%lfで、面積は%lfです", hankei, enshu, menseki);

}
324デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 12:51:36.15ID:lacLn2e2a
>>323
実行不能状態とはどのような状態か詳しく書くように。
2018/07/10(火) 13:17:53.02ID:G1Ywym5SM
>>323
ソースコードは問題ない。
戻り値型省略が警告になるくらい。

エスパーすると、
警告をエラー化するオプションが指定されていて、最新コードを実行しているつもりが古いコードを実行していたとか。

もしくはソースコードを直接実行しようとしているとか。
326デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 13:45:26.21ID:lacLn2e2a
ま、何れにしてもどういう環境で何をやってどうなったか詳細書いてくれんとわからんな。
WindowsでEclipse使ってる場合とLinuxでvimで入力してgccでコンパイルしている場合では答えが大幅に変わるし。
exeと書いてあるからWindowsだろうと予想することはできるが実はWindowsじゃなくてexeが作られるものと誤解しているだけなんてことも初心者ならありうるしな。
2018/07/10(火) 14:15:20.90ID:PTerA0wX0
Windows 10の開発者コマンドプロンプトでコンパイルしました。 cl (ファイル名).c
拡張子がexeのファイルが生成されました。

そのexeファイルをダブルクリックすると、マカフィーによって「脅威を隔離しました」というメッセージとともに削除されてしまいます。
何度やってもそうなります。
2018/07/10(火) 14:48:20.63ID:6oP6Hy+LM
知らぬ間に凶器を生み出してしまったんだね…
https://r.nikkei.com/article/DGXNASFK2001L_Q1A620C1000000

マカフィーを一時的に止めちゃえば?
2018/07/10(火) 14:51:13.47ID:jUw0TWzI0
マカフィーが止めなかったら人類はその瞬間、消滅していたかも知れない
330デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 15:35:28.40ID:c95ZcwpDa
この頃は単にコマンドプロンプトと呼ばずに頭に開発者って付くのか?
2018/07/10(火) 15:52:40.79ID:sLQCr7o90
コマンドプロンプト上で実行したらどうなる?
cl で実行ファイルを作ったら、そのままコマンドプロンプトで
実行ファイルの名前を打ってEnter、で動くと思うけど。

コンソールアプリケーションをダブルクリックで実行した場合、
scanf系の標準入力に必要なコンソールってどうなるんだっけ?
2018/07/10(火) 16:44:44.45ID:b+i389ju0
Windows10(17134.137) + VisualStudio2017(Ent15.7.4) の開発者コマンドプロンプトで確認してみたけど問題ない
https://i.imgur.com/SZMlQ7g.png
333デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 17:11:41.78ID:c95ZcwpDa
マカフィーのチェックがおかしいわけだな。
自宅のPCでマカフィー入ってるのあるから帰ったら試してみよう。
2018/07/10(火) 17:13:29.68ID:PTerA0wX0
>>328
いやいや、私はヤバいウイルスとかを作る技量はないので…
知らぬ間に作るなんてことは…

>>331
プロンプトで実行すると、長いエラーメッセージが出ます。
その場合もマカフィーが反応します。

マカフィーのせいなんですかあああああ…?
マカフィーを止めるのはなんか面倒です。
335デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 17:23:53.95ID:c95ZcwpDa
そういやマカフィーの創業者のジョン・マカフィーは壮絶な人生歩んでるのな。
知りたい人はWikipediaでジョン・マカフィーで検索してみな。
2018/07/10(火) 18:23:14.04ID:4twA9KsQ0
>>334
例外設定できんの
2018/07/10(火) 19:58:04.00ID:/C7aTWfLM
なんでマカフィーを後出ししたのか教えて
>>323では隠してたよね
338デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 20:29:17.07ID:csDUndKHa
このスレは超エスパーの常連が常駐していると聞いて
2018/07/10(火) 20:55:39.23ID:XZttgo620
今頃常連は君のPCの中で、あんなことこんなことしてるかも
2018/07/11(水) 02:42:31.00ID:XTzeI4c20
>>334
一時的に無効にするのはそんなに面倒じゃないよ
クリック数回でできるレベル
それすら出来ないなら金で人雇って問題を解決してもらうしかない
2018/07/11(水) 12:17:16.91ID:Z7jbd2VW0
そんなことは普通にできますが,インターネット接続を切ったり入れたりもしなきゃいけないじゃないですか
それも簡単ですが,マカフィーのいたずらのせいでそんなことをいちいちやるのは…という意味です
2018/07/11(水) 12:19:33.60ID:F9Ul8eGQH
止めたついでにアンインストールするのがいいと思うよ。
2018/07/11(水) 12:23:38.80ID:ElMeoT060
プログラムを作成自体を犯罪者予備軍と見なしているのかな・・
2018/07/11(水) 12:33:49.60ID:/qmyOvYB0
使ってるのがwindows10ならもうウィルス対策ソフトなんて要らないよ。重くなるだけ。
windowsDefenderで十分。2つ入れてるとトラブルの元。
2018/07/11(水) 23:17:11.74ID:mjsZ1svma
C++でディレクトリ無かったら作る関数って何かあります?
LinuxのPOSIX系だと見つからんかった
2018/07/12(木) 00:42:26.88ID:gvbwsRPLM
>>345
man 2 mkdir
2018/07/12(木) 01:44:43.97ID:2elGYyrL0
>>334
マカフィー入った環境でやってみたけど普通に動いた。
但し、Cコンパイラは Cygwin の gcc だ。
2018/07/12(木) 02:21:13.11ID:9sO/Jh060
>>341
別に一時的に無効化するだけならネットを切る必要は無い
セキュリティ的にどうしても不安があるっていうならLANケーブル抜けばいい
それすら面倒ならパソコンを窓から投げ捨てろ
2018/07/14(土) 08:48:08.32ID:xV7EJA5wd
マカフィーのポリシーが気に入らないなら消せば
350デフォルトの名無しさん (ワッチョイ ead2-4lKT)
垢版 |
2018/07/15(日) 17:16:55.22ID:+OH6AID30
C言語で集合、和集合、積集合を実装したいのですが、正直アイデアが浮かびません。
どうすれば良いのでしょうか?
教えていただきたいです。
2018/07/15(日) 17:20:53.28ID:0kASpcPE0
>>350
まず集合の要素を何にするか?
集合自体の表現をどうするか?
そこからスタートするべきだと思います
C++ https://mevius.5ch.net/test/read.cgi/tech/1434079972/33
2018/07/15(日) 18:24:43.00ID:yiVegLeV0
C++ちゃうやろ
2018/07/15(日) 18:43:53.92ID:wAtjArzX0
C++のstd::setを参考にしない手はないな。
集合をデータとして保持したいなら、要素の個数と、動的配列かリストが必要になる。
2018/07/15(日) 18:50:09.68ID:uEXuZg9md
集合は順序列の順序を無視したものと考えられる。
比較する場合は、ソート済みにしてから比較する必要がある。
多重集合ではない場合は変更の際に要素を単一化しないといけない。
2018/07/15(日) 18:57:55.11ID:chucpUaPM
setは赤黒木だけど、実装したことある奴いるの?俺はaddだけ実装して満足して諦めたよ。

hashtableのほうが遥かに簡単だからオススメ。
整列済みの配列も簡単でいいと思うよ。

でも一番楽なのは、ライブラリを拾ってくること。
2018/07/15(日) 20:00:12.79ID:uEXuZg9md
std::unordered_set
2018/07/15(日) 23:33:22.03ID:ugn7dRUid
>>350
積集合の方が比較的簡単
和集合は同一要素であるかをどうやって判別するか
要素を構造体で表した時に
異なる構造体でも同一要素である判別が出来なくてはならないので

単純な例だと
複素数型と実数型と有理数型とcharとintとfloatとdoubleとか
2018/07/15(日) 23:57:35.35ID:yiVegLeV0
>>357
意味が全くわからんわ。
そもそも和集合も積集合も補集合考えたら手間が変わるはずないし。
2018/07/15(日) 23:59:45.37ID:ugn7dRUid
>>358
ああ、直積と勘違いした
2018/07/16(月) 00:10:17.99ID:RYaEyvned
型が限定されていれば簡単
(>>353>>356)

>>357みたいに、
いろんな型が混ざった和集合だと
いろいろと大変
2018/07/16(月) 00:41:17.49ID:JxE01Fj60
一般論で言えば、集合の実装はハッシュを実装することに限りなく等しい。

どんなオブジェクトであれ、シリアライズ(要は文字列化)できる。
そうすればハッシュで一意な比較的小さい非負整数の番号に写像できる。(←条件により、ここが難関になりうる。ハッシュを使わずに済む番号が用意されていればそれが最適)
逆写像も用意できる。
最大番号までの要素数を持つ整数配列で0/1で要素の有無を表現したものが一つの集合を表す。
2つの集合の和と積は0/1の|と&で表せる。
配列サイズと計算時間の節約にはビットマップ化すればok。
2018/07/16(月) 12:41:40.20ID:JYSC+BEod
視野の狭いアホ
2018/07/16(月) 13:40:42.48ID:PLRcL5uS0
>>361
>ハッシュで一意な比較的小さい非負整数の番号に写像できる。

ハッシュ関数は一般に衝突するもの、と考えるものですが、範囲を小さくすれば特に…
2018/07/16(月) 13:45:32.02ID:GVNh7z7o0
ハッシュの逆写像て何よ
2018/07/16(月) 15:04:36.42ID:JxE01Fj60
>>362
広い視野で具体的な提案をどうぞ。

>>363
要素が固定なら完全ハッシュ関数が構成可能。

>>364
和集合とか積集合とか求めてもそこから要素リストが作れなければ無意味というだけ。これは逆写像を作ってるのと同じ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況