X



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

便利なライブラリをここに挙げてみたり
やりたい事を実現できるライブラリを聞いてみたり
ライブラリに関する雑談をするスレです
0208203
垢版 |
2014/11/08(土) 18:34:00.59ID:BM9hg24M
htps://github.com/sugawara5110/c-code/tree/master/neko-puzzle
0209203
垢版 |
2014/11/08(土) 18:36:58.72ID:BM9hg24M
あっぷしてみましたのでご意見などいただけると勉強になります(´・ω・`)
0211203
垢版 |
2014/11/08(土) 18:43:05.89ID:BM9hg24M
あーいらんかったってことですか(´・ω・`)
たしかにソースだけあればよかったか・・
0212203
垢版 |
2014/11/08(土) 18:43:43.17ID:BM9hg24M
さっそく見ていただき感謝いたす
0214203
垢版 |
2014/11/08(土) 19:53:08.87ID:BM9hg24M
猫タコ?
0215デフォルトの名無しさん
垢版 |
2014/11/08(土) 19:56:53.52ID:1s+x8/Zl
>>214
GitHubのマスコットキャラ
猫の姿でタコの足のキャラクタがGithubのあちこちにあるっしょ?
オクトキャットっていうらしいよ
0216デフォルトの名無しさん
垢版 |
2014/11/08(土) 19:59:55.45ID:BM9hg24M
あーいわれてみれば
ここの住人はほとんど使ってるのかしら。
他の人のコードも見てみたい
0220デフォルトの名無しさん
垢版 |
2014/11/09(日) 17:10:06.02ID:62DRc8BH
最短を求めるとなると私の頭では無理なので
とりあえず自動で最後までそろえるってのだけを目標で・・・
0221デフォルトの名無しさん
垢版 |
2014/11/15(土) 01:22:29.68ID:8XdLSiZM
自動でパズルさせるのはなかなか難しい。
16ピース5回中3回くらいは途中停止する。最後まで行くときは2分くらいで終わる。
64ピースやってみたが6分くらいで行けそうなところ残り4ピースで途中停止した
もう少し調整するかな。勉強になる
0222203
垢版 |
2014/11/17(月) 22:39:43.86ID:ymrvm2RC
htps://github.com/sugawara5110/c-code/blob/master/neko-puzzle/neko-puzzle.cpp
あの・・最短距離ではないんだけども自動で完成させるプログラム追加しました
よろしければコメントなどを・・・
0224203
垢版 |
2014/11/19(水) 18:35:58.24ID:8L+2ukXn
>>224
ありがたいお言葉(´・ω・`)
画像処理系に興味があるんだが一番適してるライブラリって何だろうね
DXライブラリでやるとなるとGetPixelで色情報取ってどうにかするくらいしか
今のところ思い浮かばぬ
0226203
垢版 |
2014/11/19(水) 23:20:54.92ID:8L+2ukXn
最終的にそんなレベルまで行ければ最高だが
まずは指定した範囲の色の変換くらいからやってみたいわ。

前に『C言語で学ぶ実践画像処理』とかいうやつを見たんだが
さっぱりで、何かライブラリ使えばもう少し何とかならんかなと思ってね。
0228203
垢版 |
2014/11/20(木) 00:03:53.01ID:gdrc2KWW
さっそくぽちりましたわ
感謝いたす
0230203
垢版 |
2014/11/20(木) 19:48:57.40ID:gdrc2KWW
>>229
これは初めて存在を知った。
さんくす
0231名無しさん@そうだ選挙に行こう
垢版 |
2014/12/13(土) 18:07:41.25ID:jujLqWbt
型推論が議論になってたからどんな難しいことやるのかと思ったら分かりきってることを書かなくて済むだけで
可読性は返ってあがるんじゃないかという物だった
0233203
垢版 |
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カメラ繋げると映った映像でできます。
0234デフォルトの名無しさん
垢版 |
2015/03/02(月) 14:49:29.94ID:u4npGgFL
  
0236デフォルトの名無しさん
垢版 |
2015/05/01(金) 16:33:07.77ID:aRUumtfx
map 便利っすよねぇ。簡易DBできちゃう。
0237デフォルトの名無しさん
垢版 |
2015/05/01(金) 16:53:10.80ID:xCWnJTf9
>>236
保存しない。ほとんどの動的言語、スクリプト言語はmapが標準で使われる。
0238デフォルトの名無しさん
垢版 |
2015/05/01(金) 18:47:32.57ID:9/bcUBPU
え そなの?
0239デフォルトの名無しさん
垢版 |
2015/05/24(日) 00:41:11.39ID:+F5s2GBE
自作ライブラリをGithubに晒すも誰もクローンしてくれない
ライブラリ製作者は宣伝もするべきか否か
0242デフォルトの名無しさん
垢版 |
2015/05/25(月) 11:35:43.43ID:IHH4zZrw
コンテナやパーサがC++じゃなくて、Cで提供されてどうしろと。。。

さらにプロジェクトも大きいけど、、、
欲しいのはC++のクラスヘッダーで、使用法はインクルードするだけのインスタントに使える小さなヘッダーであって、、、
0247デフォルトの名無しさん
垢版 |
2015/05/26(火) 00:30:31.86ID:AOagakZ7
C++で使えるようにしても正直要らんから(文字列クラスは標準にあるしCSVパーサーも数十行で書ける)
C言語だけで十分だと思うよ
0249デフォルトの名無しさん
垢版 |
2015/05/26(火) 07:44:41.52ID:AOagakZ7
>>248
じゃあ何が違ってどういうメリットがあるんだ?それをまずトップに書かないと。
一応言っておくけど追加できなくなったら何事も無かったかのように勝手に切り詰められるのはメリットとは思わないよ。

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

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

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

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

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

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

アプリ用のCSVパーサーなら、今のアプリはOOP言語になってるから、C言語用は要らない。
0266デフォルトの名無しさん
垢版 |
2015/05/27(水) 15:09:54.31ID:O9y07yQ1
Yes。

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

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

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

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

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

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

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

STLみたいのは手に負えないけど、費用対効果で使う。
0270デフォルトの名無しさん
垢版 |
2015/05/28(木) 02:32:35.00ID:Q/PHM93y
>>265
需要ねえって何度も言ってるだろ・・・

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

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

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

ttp://d.hatena.ne.jp/yus_iri/20120328/1332888387
0279デフォルトの名無しさん
垢版 |
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;
}
0281デフォルトの名無しさん
垢版 |
2015/05/29(金) 00:04:13.41ID:bAym9d9y
そんな状態でCSVなんかのRFC出されてもそれも需要ないよな。
厳密なのが欲しければおとなしくXMLとかjsonとか使ってる
0282デフォルトの名無しさん
垢版 |
2015/05/29(金) 04:51:03.43ID:qs5f7SgO
>>279
俺csvはともかく、これぐらいのサイズはやっぱり使いやすそうだなぁ
メソッド単位で使いまわせると便利だよな
0283デフォルトの名無しさん
垢版 |
2015/05/29(金) 08:02:28.25ID:BhuuzzRo
改行を含む場合に対応してなくてダブルクォーテーションのアンエスケープも
別にやらなきゃならんというなら素直にtsv使ったほうがいいな。
0284デフォルトの名無しさん
垢版 |
2015/05/29(金) 13:06:57.82ID:PDSs+1CX
279 は改行をを含むカラムに対応してるよ。改行が入ってると 279 を呼ぶ側で fgets() で簡単には済ませられないという話。どうせ大きくても数MB程度だろうから全部読んじまえ。
俺 csv って、エスケープされたままなのは別として、カラム取り出しだけで言えば RFC 準拠だろ。
改行コードに CRLF ではなく LF でも受け付けるのは逸脱だが、そんなん直したけりゃ直せるだろうし、渡す側で行処理するんだからそこでも対処できる。

好きなコンテナに格納することを考えたら、あのくらいの単純さが使いやすいだろう。
プロジェクトによってはもっと仕様を簡素化できるわけで、検索してあれこれ比べて選定するくらいなら、毎回書いても大したことはないということは理解して頂けたのではないかと思う。
0286デフォルトの名無しさん
垢版 |
2015/05/29(金) 18:59:23.12ID:Y1+KdLtR
.orecsvの生成読み込み書き込み保存全部自前でやって外に公開しない
我が汚点ここに閉じれり
0287デフォルトの名無しさん
垢版 |
2015/05/31(日) 18:44:09.08ID:qAMsR7U5
コピペで組み込めるコードは魅力的ではある
俺もよくエディタから呼び出してペタペタしてる
0288デフォルトの名無しさん
垢版 |
2015/05/31(日) 18:51:30.86ID:1lTJ4ips
俺もコピペ用の自分専用オナペットを言語ごとに用意してるよ
最近はエディタで一発呼び出しできるから便利だ
0290デフォルトの名無しさん
垢版 |
2015/06/01(月) 14:43:55.83ID:w6ZTYj3g
バナナはおやつに含まれる
これは周知の事実ですがスニペットはライブラリに含まれますか?
0291デフォルトの名無しさん
垢版 |
2015/06/01(月) 15:02:44.49ID:af7LYGUO
僕のバナナはおっきいです
0292デフォルトの名無しさん
垢版 |
2015/06/08(月) 17:40:07.97ID:f6z+oPGU
EigenのMatrixXf型に、幅w 高さhの大きさの配列

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

をMapで入れる方法おしえてください
0293デフォルトの名無しさん
垢版 |
2015/06/09(火) 10:27:41.86ID:rq1TUv96
MatrixXf A = Map<MatrixXf>(&db[0], w, h);
0294デフォルトの名無しさん
垢版 |
2015/06/11(木) 15:20:59.61ID:SBJGIqGV
redSVDのデータを一気に読み出す方法ないでしょうか?
要素1つずつアクセスしてるととんでもなく時間がかかります。
0297デフォルトの名無しさん
垢版 |
2015/09/02(水) 17:12:22.70ID:DQQjJ9NG
  
0298デフォルトの名無しさん
垢版 |
2015/11/28(土) 14:34:07.15ID:Fi4wDTmy
RARやZipファイルの解凍ライブラリは何がありますか?
スタティックリンク可能なのが良いです
あと、ファイルに書き出さずメモリ内に展開してくれる機能もほしいです
0300デフォルトの名無しさん
垢版 |
2015/12/30(水) 06:16:03.09ID:HSsTu4WU
>>299
作り終わってしばらくは自信あったんですが、
時間が経って改め見るとここの人たちが言うようにあまり便利な代物ではなかったですね
ライブラリ制作むずかしいです
0303デフォルトの名無しさん
垢版 |
2016/04/05(火) 02:46:14.53ID:2X2ng6yq
age
■ このスレッドは過去ログ倉庫に格納されています

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