C/C++のライブラリ総合スレ

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2011/08/10(水) 01:12:07.87
便利で役立つライブラリを総合的に扱うスレがないので立てました

便利なライブラリをここに挙げてみたり
やりたい事を実現できるライブラリを聞いてみたり
ライブラリに関する雑談をするスレです
2014/11/08(土) 18:40:48.62ID:JaU3wmB/
とりあえず.exeはignoreするもの
211203
垢版 |
2014/11/08(土) 18:43:05.89ID:BM9hg24M
あーいらんかったってことですか(´・ω・`)
たしかにソースだけあればよかったか・・
212203
垢版 |
2014/11/08(土) 18:43:43.17ID:BM9hg24M
さっそく見ていただき感謝いたす
2014/11/08(土) 19:40:16.69ID:ebCh2W7f
これで君も猫タコの仲間入りだにゃ!
214203
垢版 |
2014/11/08(土) 19:53:08.87ID:BM9hg24M
猫タコ?
2014/11/08(土) 19:56:53.52ID:1s+x8/Zl
>>214
GitHubのマスコットキャラ
猫の姿でタコの足のキャラクタがGithubのあちこちにあるっしょ?
オクトキャットっていうらしいよ
2014/11/08(土) 19:59:55.45ID:BM9hg24M
あーいわれてみれば
ここの住人はほとんど使ってるのかしら。
他の人のコードも見てみたい
2014/11/08(土) 22:37:31.35ID:SdfgCKME
>>209
自動で最適な解を求める機能も
追加しろよ。
2014/11/09(日) 09:45:50.19ID:62DRc8BH
>>217
それはいいアイデアですな
2014/11/09(日) 16:35:08.16ID:LTV/EpFj
難しいのでわないかいw
2014/11/09(日) 17:10:06.02ID:62DRc8BH
最短を求めるとなると私の頭では無理なので
とりあえず自動で最後までそろえるってのだけを目標で・・・
2014/11/15(土) 01:22:29.68ID:8XdLSiZM
自動でパズルさせるのはなかなか難しい。
16ピース5回中3回くらいは途中停止する。最後まで行くときは2分くらいで終わる。
64ピースやってみたが6分くらいで行けそうなところ残り4ピースで途中停止した
もう少し調整するかな。勉強になる
222203
垢版 |
2014/11/17(月) 22:39:43.86ID:ymrvm2RC
htps://github.com/sugawara5110/c-code/blob/master/neko-puzzle/neko-puzzle.cpp
あの・・最短距離ではないんだけども自動で完成させるプログラム追加しました
よろしければコメントなどを・・・
2014/11/19(水) 05:09:58.21ID:g6yRyndh
>>222
なかなかやるな。ちゃんと解けるわ。
この後、何する?
224203
垢版 |
2014/11/19(水) 18:35:58.24ID:8L+2ukXn
>>224
ありがたいお言葉(´・ω・`)
画像処理系に興味があるんだが一番適してるライブラリって何だろうね
DXライブラリでやるとなるとGetPixelで色情報取ってどうにかするくらいしか
今のところ思い浮かばぬ
2014/11/19(水) 21:18:09.65ID:g6yRyndh
>>224
画像処理系と言っても範囲が広いが
photoshopみたいなのを作りたい
のか?
226203
垢版 |
2014/11/19(水) 23:20:54.92ID:8L+2ukXn
最終的にそんなレベルまで行ければ最高だが
まずは指定した範囲の色の変換くらいからやってみたいわ。

前に『C言語で学ぶ実践画像処理』とかいうやつを見たんだが
さっぱりで、何かライブラリ使えばもう少し何とかならんかなと思ってね。
2014/11/19(水) 23:40:47.01ID:HNS1lgWg
>>226
そのレベルで悩む位ならGraphics Gemsシリーズを通読してみては?
http://www.glassner.com/portfolio/graphics-gems-series/

今手に入るか微妙だけど。
228203
垢版 |
2014/11/20(木) 00:03:53.01ID:gdrc2KWW
さっそくぽちりましたわ
感謝いたす
2014/11/20(木) 06:56:00.31ID:4Zrrqf13
opencv 見といたほうがいいよ。
230203
垢版 |
2014/11/20(木) 19:48:57.40ID:gdrc2KWW
>>229
これは初めて存在を知った。
さんくす
2014/12/13(土) 18:07:41.25ID:jujLqWbt
型推論が議論になってたからどんな難しいことやるのかと思ったら分かりきってることを書かなくて済むだけで
可読性は返ってあがるんじゃないかという物だった
2014/12/13(土) 18:08:13.84ID:jujLqWbt
ライブラリのスレだった。スマン
233203
垢版 |
2015/01/04(日) 11:14:04.62ID:xl4tJwy6
https://github.com/sugawara5110/c-code/tree/master/slide-puzzle
結局まだパズルいじってました。
よかったらご意見頂けると勉強になります。
出来たexeファイルとhkフォルダ,oggフォルダ,saveフォルダ,z_cam_ewc.bmpファイルと
パズルにする動画(mpg,avi)か画像を同じとこにしていただくと動画像選べます(´・ω・`)
webカメラ繋げると映った映像でできます。
234デフォルトの名無しさん
垢版 |
2015/03/02(月) 14:49:29.94ID:u4npGgFL
  
2015/03/20(金) 18:41:36.03ID:PgACHQnR
IUP 3.13
http://sourceforge.net/projects/iup/files/3.13/

IUP 3.13 Released
http://sourceforge.net/p/iup/news/?source=navbar
2015-02-05
236デフォルトの名無しさん
垢版 |
2015/05/01(金) 16:33:07.77ID:aRUumtfx
map 便利っすよねぇ。簡易DBできちゃう。
237デフォルトの名無しさん
垢版 |
2015/05/01(金) 16:53:10.80ID:xCWnJTf9
>>236
保存しない。ほとんどの動的言語、スクリプト言語はmapが標準で使われる。
238デフォルトの名無しさん
垢版 |
2015/05/01(金) 18:47:32.57ID:9/bcUBPU
え そなの?
2015/05/24(日) 00:41:11.39ID:+F5s2GBE
自作ライブラリをGithubに晒すも誰もクローンしてくれない
ライブラリ製作者は宣伝もするべきか否か
2015/05/24(日) 02:13:39.20ID:Ewhf1zLw
>>239
今ここで宣伝しろ。
面白いライブラリなら使うし、つまらなければ使わない。
2015/05/24(日) 04:24:51.75ID:+F5s2GBE
>>240
わかった。

FixedString - 固定長バッファ文字列コンテナ
https://github.com/narupo/fixed-string
Csv - CSVパーサ
https://github.com/narupo/csv-parser

どちらもC11です。
2015/05/25(月) 11:35:43.43ID:IHH4zZrw
コンテナやパーサがC++じゃなくて、Cで提供されてどうしろと。。。

さらにプロジェクトも大きいけど、、、
欲しいのはC++のクラスヘッダーで、使用法はインクルードするだけのインスタントに使える小さなヘッダーであって、、、
2015/05/25(月) 17:32:28.98ID:eFAMmtaP
>>242
C++互換にしてインストールを簡単にしろってことかな
2015/05/25(月) 17:47:12.89ID:eFAMmtaP
というかREADMEにインストール方法書いてないね
ごめんw書いておきます
2015/05/25(月) 23:31:05.65ID:WhsXE+Ib
な? 公開するといいことあるだろ?
2015/05/26(火) 00:15:49.93ID:gT6Ig0YJ
>>245
そうだね。
2015/05/26(火) 00:30:31.86ID:AOagakZ7
C++で使えるようにしても正直要らんから(文字列クラスは標準にあるしCSVパーサーも数十行で書ける)
C言語だけで十分だと思うよ
2015/05/26(火) 00:46:33.31ID:gT6Ig0YJ
>>247
std::stringとは設計方針がちょっと違うんだけど、やっぱりそうなるか…
2015/05/26(火) 07:44:41.52ID:AOagakZ7
>>248
じゃあ何が違ってどういうメリットがあるんだ?それをまずトップに書かないと。
一応言っておくけど追加できなくなったら何事も無かったかのように勝手に切り詰められるのはメリットとは思わないよ。

あとちらっとソース見たけどマクロとGenericでオーバーロードモドキか…
_GenericはC++に無いからコンパイル通らない。(必要もないから将来的にも絶対入らない。)
だから一生懸命extern "C"とか書かなくて大丈夫だよどの道使えないから。
2015/05/26(火) 09:23:00.22ID:gT6Ig0YJ
>>249
> トップに書かないと
確かに。自動で伸縮しない所がメリットでありデメリットでもあると考えてます。
_Genericは…うーん、そうなんですよね。C++でコンパイル通らない。
だから仮にC++に対応させるなら__cplusplusでプリプロセス分岐させようかと思うんだけど。
2015/05/26(火) 12:06:56.19ID:8yfffJz/
というか、C言語で、CSVパース出来たとして、何の用とで使えと?
2015/05/26(火) 23:07:07.73ID:7l+z4oEP
ちょっと厳しすぎるだろ
みんなが欲しがるようなライブラリなんて、いきなり作れるはずがない
こういうのを作って経験して、もっといいものを公開するようになったり出来るようになるんだろう
2015/05/27(水) 01:14:53.03ID:54lVu2mS
他人に見せるライブラリって、何処まで丁寧にエラー処理すれば良いか悩む。
2015/05/27(水) 02:41:13.23ID:aJ6ZFegx
>>251
それライブラリ製作者が考えることか?
2015/05/27(水) 08:48:03.54ID:O9y07yQ1
考えること。

ソースをライブラリ化するとき、
例えばライブラリフォルダに一式移動する
際、使う人あるかな、使用法わかるかな、とか考える。

もしくは、初めから使いたい人から要求されてライブラリになるな、
と確信してるときは、初めからライブラリフォルダにソースを置き、
始めはインターフェースはそれなりにしといて、中身空のメソッドだったりで、
使いながら育てる。
2015/05/27(水) 08:59:44.23ID:zpturinB
アプリケーションを実装する際にできたライブラリか
汎用なライブラリを作りたくてそれだけを作ったかで違ってくるよな

前者はなんかクソな設計で変更が難しいけど実際に動いてる実績があって
後者は延々と理想求めたりして実装がころころ変わったりして
バグフィックスだけで良いのに使う側として常に追いかけなきゃならんとか
2015/05/27(水) 09:53:36.20ID:Sp3ce27d
>>253
理想はどんな場合でもハングしないでエラー返してくれることかなぁ。
外からメモリ壊してるとかは無理だけど。
2015/05/27(水) 09:58:36.91ID:n6H5is8U
csv パーサも固定長文字列も、必要になった時に、わざわざ検索してライブラリ探さないでしょ。
書いた方が早いし、自分の要求にフィットしたものが得られる。
誰も使ってくれないって当たり前でしょ。
このレベルの細かいものなら、コピペしてすぐ使えるレベルじゃないと。

>>252
親切にしてほしければヨソに行くべき。
2015/05/27(水) 10:23:50.27ID:aJ6ZFegx
>>255
あなたの言ってることは大事なことだ思うけど、
鍛冶屋が作ったナイフで鉛筆を削るか干し肉を削ぐかは使用者が決めることじゃないかなぁ。
2015/05/27(水) 10:42:25.64ID:aJ6ZFegx
>>258
「誰も使ってくれない」なんて言った覚えはないよ。
この程度の処理で大げさだってことですよね?
うーん、それは確かにそうですね。難しいですねライブラリって。
261デフォルトの名無しさん
垢版 |
2015/05/27(水) 12:17:21.94ID:4NQ0ZIOa
誰も欲しがらないレベルなんだよな。
C++のプロジェクトにこのライブラリが入ってたら使ってるところとライブラリ全部削除して書き直すレベル
2015/05/27(水) 12:38:05.44ID:lhddlPIv
素直にC専用にしたほうがいいと思うがC11とかどれくらい使われてるやら
2015/05/27(水) 13:05:33.39ID:O9y07yQ1
>>259
おまえ馬鹿だな。
部品とそれを使うのがバッサリ分れてたのは第三世代言語まで。
開発時に結局部品も修正が必要となって、OOPで部品とその組み合わせとシームレスになったんじゃん。
2015/05/27(水) 13:12:00.91ID:O9y07yQ1
>>260
流れ読んでないね。

C言語だと今使われるのはOSとか特殊用途。
メモリ保護とリアルタイム性を保障できるライブラリなら大げさであっても要るだろうけど、OSにCSVパーサーは要らないってこと。

アプリ用のCSVパーサーなら、今のアプリはOOP言語になってるから、C言語用は要らない。
2015/05/27(水) 14:31:37.57ID:aJ6ZFegx
>>264
なるほど。それじゃC++に移植したら少しは需要出るかな?つまりアプリ用途で。
2015/05/27(水) 15:09:54.31ID:O9y07yQ1
Yes。

普通にググって、GPLじゃないことを確認したら、自分のソースのように使います。
といっても作者名を潰すわけでなく、超気に入った場合は作者のサイトのリンクファイルまでUPしておいたり。

C++のヘッダーだけだったら超OK、
CPPがある場合は自分で気に入らない部分を手直しできそうか目視チェック、
それを超えて大きい場合はサンプルを動かして費用対効果を考えます。
2015/05/27(水) 15:46:40.38ID:aJ6ZFegx
>>266
小回りの利いたライブラリも好まれるってことですよね。基本コピペで済むような。
CPPがある場合の手直しって何故するの?コンパイルの都合?
2015/05/27(水) 16:05:37.46ID:O9y07yQ1
全然違う。

>小回りの利いたライブラリも好まれるってことですよね。基本コピペで済むような。

クラス派生とかで、簡単に処理を足したり引いたり出来ないと、困るみたいな。

コピペしたくないし、小回りとも違うんだけど。

>CPPがある場合の手直しって何故するの?コンパイルの都合?

Hだと手直ししないって意味じゃなくて、Hだけだと全体を一瞬で読めて、手直しも一瞬って意味。

STLみたいのは手に負えないけど、費用対効果で使う。
2015/05/27(水) 16:21:52.04ID:aJ6ZFegx
>>268
ああ、OOPにしろってことね。
2015/05/28(木) 02:32:35.00ID:Q/PHM93y
>>265
需要ねえって何度も言ってるだろ・・・

>>266
ちゃんとライセンスに則って扱いましょうね。
GPLじゃなくてもお前のコードじゃないんだよ。
2015/05/28(木) 04:39:20.67ID:uU2xmjCS
CSVパーサー(笑)
そんな10分もあれば書けるようなものを
わざわざ怪しげなソース引っ張ってくるバカいないから(笑)
2015/05/28(木) 05:09:28.73ID:iUg4+VgF
需要ないのはわかったよ
http://www.kasai.fm/wiki/rfc4180jp
ここに書いてある仕様満たすのに10分かからないって本当?
2015/05/28(木) 07:13:18.70ID:GsmtxIyT
C++でライブラリ作るならboostにない機能にしろよ
2015/05/28(木) 07:20:28.88ID:qAXCkldS
個人や環境の差があるだろうが10分かからなくてもおかしくはない
とはいえRFC4180をそのまま実装しておわりってことはまずなくて
もっと簡便でいいかしっかり作り込むかで二極化してると思うんだよな
2015/05/28(木) 07:38:31.92ID:iUg4+VgF
10分の節約にしかならないなら需要もない訳か
JavaのOrangeSignal CSVとかは作りこんでるライブラリだよね
2015/05/28(木) 07:54:57.38ID:/29IIuZp
C11だからなぁ
完全に満たしてようが趣味で使えるレベルであろうがちょいと厳しいものがある
まあ停滞してたスレにいい風吹いたんでないの
2015/05/28(木) 09:48:20.22ID:syH+pQKv
>>271
それは真っ赤なウソ、というか現実知らな杉。

毎年(常時)莫大な初心者プログラマが発生し、ググるでCSVパーサーを探し続ける、のが現実wwwww
2015/05/28(木) 10:48:16.51ID:syH+pQKv
燃料投下。

boostと被ると要らない、といった意見には、このような現実の反論もあります。

ttp://d.hatena.ne.jp/yus_iri/20120328/1332888387
2015/05/28(木) 11:55:58.71ID:C5F/Fv0U
csvパーサなんて、この程度がブログに載っててコピペで使う、くらいで丁度いい。
241 のはメインメモリに全部読まないからメモリにやさしいかもしれないが、メモリ消費量を気にするくらい大きな csv を扱うのは疑問だ。
それにカラムに改行が入ってはならないという制限を付けるだけで、簡単に行単位で扱えるようになり、メモリ消費量が最大の一行分になる。

// " を含んだままカラムと扱う。
// 閉じてない " は最後まで 1 カラム。
const char * endOfCsvColumn( const char * p, const char * end ) {
const char delimiter[] = ",\r\n";
if ( *p != '"' )
return std::find_first_of( p, end, delimiter, delimiter+sizeof(delimiter) );
while ( p != end ) {
p = std::find( ++p, end, '"' );
if ( p != end && (++p == end || *p != '"') )
break; // quatation closed.
}
return p;
}
2015/05/28(木) 23:20:28.85ID:bIsDrlAn
そういう俺csvが乱立していたからRFCが出されたのに。
2015/05/29(金) 00:04:13.41ID:bAym9d9y
そんな状態でCSVなんかのRFC出されてもそれも需要ないよな。
厳密なのが欲しければおとなしくXMLとかjsonとか使ってる
2015/05/29(金) 04:51:03.43ID:qs5f7SgO
>>279
俺csvはともかく、これぐらいのサイズはやっぱり使いやすそうだなぁ
メソッド単位で使いまわせると便利だよな
2015/05/29(金) 08:02:28.25ID:BhuuzzRo
改行を含む場合に対応してなくてダブルクォーテーションのアンエスケープも
別にやらなきゃならんというなら素直にtsv使ったほうがいいな。
2015/05/29(金) 13:06:57.82ID:PDSs+1CX
279 は改行をを含むカラムに対応してるよ。改行が入ってると 279 を呼ぶ側で fgets() で簡単には済ませられないという話。どうせ大きくても数MB程度だろうから全部読んじまえ。
俺 csv って、エスケープされたままなのは別として、カラム取り出しだけで言えば RFC 準拠だろ。
改行コードに CRLF ではなく LF でも受け付けるのは逸脱だが、そんなん直したけりゃ直せるだろうし、渡す側で行処理するんだからそこでも対処できる。

好きなコンテナに格納することを考えたら、あのくらいの単純さが使いやすいだろう。
プロジェクトによってはもっと仕様を簡素化できるわけで、検索してあれこれ比べて選定するくらいなら、毎回書いても大したことはないということは理解して頂けたのではないかと思う。
2015/05/29(金) 16:03:21.08ID:qs5f7SgO
そうなると列数のためにヘッダーが必要になるのか
2015/05/29(金) 18:59:23.12ID:Y1+KdLtR
.orecsvの生成読み込み書き込み保存全部自前でやって外に公開しない
我が汚点ここに閉じれり
2015/05/31(日) 18:44:09.08ID:qAMsR7U5
コピペで組み込めるコードは魅力的ではある
俺もよくエディタから呼び出してペタペタしてる
2015/05/31(日) 18:51:30.86ID:1lTJ4ips
俺もコピペ用の自分専用オナペットを言語ごとに用意してるよ
最近はエディタで一発呼び出しできるから便利だ
2015/05/31(日) 19:57:59.60ID:aISW5E8s
>>288
嫁はcharですか?(声が池田秀一だと男だから婿か?)

スニペットって書こうや
2015/06/01(月) 14:43:55.83ID:w6ZTYj3g
バナナはおやつに含まれる
これは周知の事実ですがスニペットはライブラリに含まれますか?
291デフォルトの名無しさん
垢版 |
2015/06/01(月) 15:02:44.49ID:af7LYGUO
僕のバナナはおっきいです
292デフォルトの名無しさん
垢版 |
2015/06/08(月) 17:40:07.97ID:f6z+oPGU
EigenのMatrixXf型に、幅w 高さhの大きさの配列

float* db = new float[w * h];

をMapで入れる方法おしえてください
293デフォルトの名無しさん
垢版 |
2015/06/09(火) 10:27:41.86ID:rq1TUv96
MatrixXf A = Map<MatrixXf>(&db[0], w, h);
294デフォルトの名無しさん
垢版 |
2015/06/11(木) 15:20:59.61ID:SBJGIqGV
redSVDのデータを一気に読み出す方法ないでしょうか?
要素1つずつアクセスしてるととんでもなく時間がかかります。
295片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2015/06/14(日) 15:11:34.31ID:9Ob0dyvk
アンパンマン、新しい顔ができたよ!!!

メモリ上の仮想ファイル操作(v_file)
https://github.com/katahiromz/v_file

文字列を識別するためのswitch文を生成(MakeSwitchForStrings)
https://github.com/katahiromz/MakeSwitchForStrings
2015/06/16(火) 14:28:55.50ID:Xu7A0Hie
更新したよ。MakeSwitchForStringsは、MakeSwitchになったよ。

https://github.com/katahiromz/v_file
https://github.com/katahiromz/make_switch
https://github.com/katahiromz/MakeSwitch
297デフォルトの名無しさん
垢版 |
2015/09/02(水) 17:12:22.70ID:DQQjJ9NG
  
2015/11/28(土) 14:34:07.15ID:Fi4wDTmy
RARやZipファイルの解凍ライブラリは何がありますか?
スタティックリンク可能なのが良いです
あと、ファイルに書き出さずメモリ内に展開してくれる機能もほしいです
2015/12/26(土) 03:41:38.86ID:sxewN+8H
>>241 はC11のGeneric使ってる人居たんだって所だけは興味深いね
2015/12/30(水) 06:16:03.09ID:HSsTu4WU
>>299
作り終わってしばらくは自信あったんですが、
時間が経って改め見るとここの人たちが言うようにあまり便利な代物ではなかったですね
ライブラリ制作むずかしいです
2016/01/06(水) 12:23:59.24ID:7f9jZCuf
>>300
それが解っただけでも成長だよ
無理せず頑張れ
2016/01/08(金) 22:06:12.15ID:2qKIN/Bt
>>301
はい
ありがとうございます
303デフォルトの名無しさん
垢版 |
2016/04/05(火) 02:46:14.53ID:2X2ng6yq
age
2016/05/16(月) 18:32:27.81ID:PpqHj2Tc
boostいいよね
2016/07/04(月) 11:38:42.52ID:wohCeOEw
pocoもあるよ
2016/07/04(月) 13:45:26.88ID:Z4HAFPPM
coolか
2016/08/21(日) 00:07:30.55ID:s2xwnKiZ
ライブラリ探すときってどう探すのが良いんかね?
素人に教えてくだされ
2016/08/21(日) 02:42:05.09ID:lsHNIuDO
とりあえずgithubとsourceforgeを漁る
309デフォルトの名無しさん
垢版 |
2016/08/21(日) 02:50:58.25ID:pfepwF/n
ググる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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