「STL」を含む日記 RSS

はてなキーワード: STLとは

2019-06-19

anond:20190619123640

 設計図とか大袈裟すぎる……。

 FDM方式なら熱収縮で反って寸法が変わるから、寸法公差とか書き込んでも意味ないんじゃ?

 大きめに作って削るか?何度も印刷して試すか?両面テープとかで貼り付けるか?という風になると思う。

 強度が不安ならポリカーボネイトフィラメントでも使えば?

 3Dプリンタで造形したいならSTLデータがあればいい。

 STLデータ無料で使えるBlenderでも作れる。

 昔はBlender情報が少なかったけど、今は情報もたくさんあるらしいし。

 とりあえずBlenderの入門本でも買ってみれば?

 簡単な形なら1ヶ月もあれば作れるようになるはず。

 3Dプリンタ印刷するのに設計図というほどの本格的なものはいらない。

 適当モデリングしてエクスポートSTLを選ぶだけ。

2019-01-20

C++人生台無しにした。

柴田望洋先生明解C++

STL標準講座

テンプレートテクニック

・Effective C++

More Effective C++

・Modern Effective C++

C++ポケットリファレンス

・入門Qtプログラミング

実践Qtプログラミング

・Effective STL

Boost C++ Librariesプログラミング

オブジェクト指向における再利用のためのデザインパターン

C++ テンプレート完全ガイド

OpenCV for C++

・大規模C++ソフトウェアデザイン

MakeGitなどコマンド系の技術書 複数

・Database系の技術書 複数

ネットワーク系の技術書 複数

Linux系の技術書 複数

Windows系の技術書 複数

自作ハード系の技術書 複数

・他の言語技術書 複数

15年かけC++を独学した。

上記書籍を何度も熟読し、

C++実装も規格書も、C++によるライブラリ実装

Boostソースコードも常に読むよう心がけた。

土日も祝日も平日朝も平日のしごと終わった後の夜も、

ずっと一人で努力し、風呂トイレ、布団の中でも勉強し、プログラムを書いた。

基本情報処理ソフトウェア開発者試験ネットワークスペシャリストとデータベーススペシャリストを取得した。

しかし、正社員はもとより、時給2000円の派遣プログラマも時給1200円のアルバイトスキル不足で何十社受けても一社採用されない。

とはいえ面接官のレベルは「STLなんて初めて聞いた」「gccて何かの会社?」

C++企画書(誤字ではない)を書いてる人なんてのがいるの?」

「じょーほーしょりしけんてのがあるの?外国の話?」

といったもので私の実力は全く理解されていなかったのだが。

独身で、一切を我慢して娯楽を全く体験しないまま40歳になってしまった。IT業界人間すべてが恨めしい。

貯金100万もなく、素人が書いたプログラムに対して手順書のとおりにマウス操作してエクセルテスト結果を書くだけの仕事ばかりしている。

C++じゃなくてCかC#Javaか、とにかくC++以外だったらこんな事にならなかっただろうに。

何の意味もない、苦しかっただけの、最悪の人生になってしまった。

2018-12-23

anond:20181223184745

この辺になってくると初心者の人は面倒かな?

解説をつければかなりわかりやす

基本的な書き方


class mystring
{
public:
	char *buffer;
	mystring() 
	{
		buffer = (char*)"";
	}

	void operator = (const char*t)
	{
		int len = strlen(t);
		buffer = new char[len + 47];
		strcpy(buffer, t);
	}

	void operator = (const mystring&src)
	{
		int len = strlen(src.buffer);
		buffer = new char[len + 47];
		strcpy(buffer, src.buffer);
	}

	mystring& operator + (const char*t)
	{
		int len = strlen(buffer);
		int len2 = strlen(t);
		char *buffer2 = new char[len + len2 + 47];
		strcpy(buffer2, buffer);
		strcpy(buffer2+len, t);
		buffer = buffer2;
		return *this;
	}
	mystring&  operator + (const mystring&src)
	{
		return ((*this) + src.buffer);
	}

};


STL化したもの

class mystringV
{
public:
	std::vector<char> buffer;
	mystringV()
	{
		buffer.resize(2);
		buffer[0] = ' ';
		buffer[1] = NULL;
	}

	void operator = (const char*t)
	{
		int len = strlen(t);
		buffer.resize(len+1);
		strcpy(&buffer.at(0), t);
	}

	void operator = (const mystringV&src)
	{
		buffer = src.buffer;
	}

	mystringV& operator + (const char*t)
	{
		int len = strlen(&buffer.at(0));
		int len2 = strlen(t);

		buffer.resize(len + len2 + 47);

		strcpy(&buffer.at(0) + len, t);

		return *this;
	}
	mystringV&  operator + (const mystringV&src)
	{
		return ((*this) + &src.buffer.at(0));
	}

};

考察

様々な話はあるものSTLの方を使えば

いろんな事をプログラマにかわってライブラリがやってしまうということ

どうなんだろうね。

この辺は あまりしっかり おしえてもらえないところではある。

でも プロならみんな 知っている

2014-05-22

3Dプリンタ低価格になってきたか

本物のマンコを元にして作ったSTLデータを売買するサイト

これから出てきそうだね。

もうあるのかな?

2014-02-02

少子化でなんか論評書く奴は北欧福井がわめく前にこれぐらいは見ておいてほしい。

http://www.gapminder.org/world/#$majorMode=chart$is;shi=t;ly=2003;lb=f;il=t;fs=11;al=30;stl=t;st=t;nsl=t;se=t$wst;tts=C$ts;sp=10;ti=1807$zpv;v=0$inc_x;mmid=XCOORDS;iid=phAwcNAVuyj2tPLxKvvnNPA;by=ind$inc_y;mmid=YCOORDS;iid=phAwcNAVuyj0TAlJeCEzcGQ;by=ind$inc_s;uniValue=8.21;iid=phAwcNAVuyj0XOoBL_n5tAQ;by=ind$inc_c;uniValue=255;gid=CATID0;iid=thlR4hyNMEnaVyV_uxRzjfQ;by=grp$map_x;scale=lin;dataMin=12;dataMax=83$map_y;scale=lin;dataMin=0.855;dataMax=8.7$map_s;sma=49;smi=2.65$cd;bd=0$inds=

つい1800年にはニジェールの7.5人/50年という水準を達成した国すら一つもないのがわかる。

あれは一国の福祉制度設計がどうこう程度よりももっと壮大な現象で、今更どうにかなるものでもない。

2013-05-08

http://anond.hatelabo.jp/20130508162927

そりゃあ、それが分からいからこそそういう恥ずかしいことを恥ずかしげも無く言っちゃうわけだからなあ。

具体的にっつっても、突っ込みどころしかなくて突っ込みきれないレベルなわけで、さすがにめんどくさくてやってらんないわけだ。

強いて言うなら、BS側だのPL側だのなんて1冊ファイナンスの本でも読んだ奴なら誰でも言える話なわけ。

(実際増田新人研修かなんかでやったことをそのまま言ってるだけでしょ?)

「我々はプログラミングに強みを持っていますC++STLなどです」とか言ってる奴がいたら「は?」ってなって終わるのと同じ。俺プログラマじゃないけど。

専門性や実績の裏づけがあって言ってるならまだしも、地頭()とやらだけで入ったような新卒が言ってたら完全に失笑なわけです。

自分研修医に舐められるくらいの恥ずかしい存在である、ということをまず認識した上でじゃあどうするのかを考えた方がいいと思うよ。

2013-03-25

プログラミングの入門

プログラム定義

プログラム:定義づけられた物事を進めていく妥当な手順・方法の決定、および物事・手順・方法記述

プログラミング定義

(コンピューター)プログラミング:コンピューターが進めていく物事を定義し、妥当な手順・方法を決定し、記述すること。

プログラミング = デザイニング union コーディング;

デザイニング:進めていく物事を定義し、妥当な手順・方法を決定すること。

コーディング:コンピューターが進めていく定義づけられた物事の決定された妥当な手順・方法を、記述すること。

プログラミングに関わる人々

PG(プログラマー):プログラミングする人。

CD(コーダー):コーディングする人。プログラマーとは限らない。

SE(システムエンジニア):進めていくべき物事を定義する人。プログラマーとは限らない。

PM(プロジェクト マネージャー):(プログラマー)プログラマー。(コンピューター)プログラマーとは限らない。

日本ソフトウェア業界ではSE定義した物事を、何の工夫も無くそのまま記述するCDという体制となっている。

まり「物事を進めていく手順・方法」が余りにも稚拙で、PGと呼べるSECDが居ない。

※「物事を進めていく手順・方法」の巧拙の例としては、

仕様:「等差数列で、1から10までの整数を加算する」

CD: べた書きかループで 1足す2足す・・・

PG: (初項 + 最終項) x 項数 /2

というように、例えば巧拙の差は「上手い・エレガントな方法アルゴリズム」だったりします。

0.以下のような方はプログラマーに向きません。入門しないでください。

継続的に勉強できない(1週間で最低10時間は、何があっても勉強しましょう)

論文・学術書が読めない。(コードはお堅い理論的に筋道立った文章の極致の一つです)

100ページくらいなら一晩で修得してやろうという気合いが無い(一晩で仕様書読み込んで次の日から活かす必要があったりします)

仕事のやり方に疑問を抱かない(楽するためにはどんな苦労も厭わず、常に最善を考えましょう)

・いつかはマネジメントをしたい(人を使うよりも、プログラム組んで仕事させた方が、安くて速くて正確ですよ)

(笑)マネジメント:下僕に進捗という数字を報告させて、自分の握っている進捗管理という方眼紙のマス目を埋める作業。

自身の雇い主にマス目の埋まり具合を報告する作業。

1.入門者になるために、学んでおくべきこと

※ここで以下の1~4を6ヶ月がんばっても挫折する方は、「一山いくらのコーダー」にしかなれない可能性が高いため、

ソフトウェア業界」自体を諦めた方が良いですね。

しがみついてしまうと、真っ当な技術者の足を引っ張ることになります

逐次実行、条件分岐、反復実行

ポインタ最近情報学科のくせに学部ポインタを教えない大学があり、そういうところは真っ当な大学ではございません。

1)O'REILLYの[amazon:C++実践プログラミング]を最初の「ポインタ」まで読んでください。

2)C++の実行環境をC99で整えてください。(環境の準備は自分で面倒を見てください)

3)ポインタを用いて、文字のLinkedListクラスを実装してください。

※LinkedListとは以下の仕様を満たすクラスします。(C++JavaのLinkedListを実装)

http://docs.oracle.com/javase/jp/6/api/java/util/LinkedList.html

4)LinkedListの入れ子でTree構造をつくり、再帰を用いて、全要素をコンソール出力するプログラムを作ってください。

5)4)をクリア出来た人は、この本を1年以内に全部読んでください。

ただし、C++は複雑怪奇言語のため、これ以降は知識レベルの修得で構いません。

私は中3の時、STLBoostどころかbooleanの無い時にこの本を9ヶ月で読んでおります

※私が面接に出る場合は、当該内容のLinkedListやQuickSortの概要を直ぐさま説明できる人は、可能性有りと○を出します。

ただし、日本ソフトウェア業界は腐っています

面接で「LinkedListを勉強してきました、直ぐさま説明できます」といって、「そんなの出来て当たり前だ」と言ってくれる会社殆どございません。

大抵はポカーンとして意味不明という顔をする文系人事だったり、「そんな技能必要ない」というところが殆どです。

逆に「できて当然」と言ってくれる会社は、技術をしっかり学べる可能性大です。

2.初級者への道

★ここまでクリアした方は、「入門者」と呼んで差し支えございません。次は「初級者」への挑戦です。

プログラミングは入門者になるだけで1年かかる世界です。

内定もらってから勉強して適正無しと自覚すると、地獄ですよ。

※初級者になるためからは、べらぼうに学ぶべきことが広がります

燎原の火のごとく。

※筆者の立場

Joelさんの「Javaスクール危険」に賛同するので、ポインタ優先ということで。

加えて、Javaクラスインスタンスとstatic変数の話を理解するのに、メモリー意識があったほうが楽だと思う派。

2012-06-28

あのね・・・わかってはいることなんですが・・・

VC2010にもなって・・・

STLが 腐ってるのは いい加減どうにかならないか!!! いか! って言ってもいい?

2012-06-14

http://anond.hatelabo.jp/20120614160514

STLを使うことによる オーバーヘッドは 数~数百バイトオーダーだろ。どんなに見積もってもキロ単位

いくらなんでも、キロ単位を 詰めることは稀 というのがメモリ見解

メモリを最も使うのが、画像画像1枚で数百Kで こっちを何とかしたほうがよほどはやい。

ここで言ってるのはあくまでも、STLを使うことによるオーバーヘッドは メモリが潤沢にあるものと想定してもいいって話で

画像とか開放漏れをしてもいいって意味じゃない。

ここで行ってるCPUは モバイルだな。 電池の持ちにも直結するし、持ってるメモリを0クリアとか、やらなくてもいいと分かり切ってる時でかつ

リストVectorの子要素で、それが莫大に長いと事前にわかってる時だな。

http://anond.hatelabo.jp/20120612090336

最近はもう STLもあるしBoostもあるから ポインタを使うという事自体がレアケースなんじゃねーか?正直もうデフォルトでは教えない。でもいいと思うよ。

ぶっちゃけポインタを理解できない奴にポインタを触らせるな。というのが現場での共通見解

メモリ周りを奴らに触らせるな!と 絶対壊すから

むしろ、constとexplicit と 参照を厳密に使えるようになれって方がよほど重要

引数const char * とか const vector<T>&とかくところを それぞれ char * とか vector<T>とかかかれると

お前待て って話 の方がよほど重要

 

あと ポインタっていつ使うの?って 正直 高速化とかのチューニング以外ではもう使わないと思う。

listとかvectorとかを再発明するぐらいなら、大抵の場合STL使えよと。 逆にSTLじゃだめ Boostじゃだめとなったら、ポインタ必要性を知ってからポインタ学ぶからいんじゃね?

2010-10-19

C++STLmap同士を結合するにはどうしたらいいんだろう?

T/O

2010-08-06

http://anond.hatelabo.jp/20100806111220

QだからQtだとおもうけど、というのは置いておいて

STLと比べてプロセッサにかなり踏み込んだ部分まで最適化されてあるから滅茶苦茶速いはずだよ。

世界にはまだまだ、non Intelベースプロセッサなんていくらでもあるしorz

だいいち、だったから完全互換にしてくれ

includeパスを切り替えれば切り替わるというのが、最高

STLベースプログラムと、オープンソースの独自プログラムQTベースプログラムの橋渡しとか無駄すぎる。orz

歴史的経緯なんだろうが、おまえら、もうちょっと、連携しろと

http://anond.hatelabo.jp/20100806110841

QSetやQVectorって確かintel提供するSTLシグネチャ互換テンプレートライブラリじゃなかったっけ?

アレは処理系から提供されてるSTLと比べてプロセッサにかなり踏み込んだ部分まで最適化されてあるから滅茶苦茶速いはずだよ。

うろ覚えだけど。

なんで・・・どいつもこいつもStringクラスとかを独自で作るんだ?STLにあるものは、STLのを使えよSTLのを・・・

複数のオープンソースとかをまたいでアプリ作るときにStringの載せ替えでメモリコピーが発生とか、泣きたくなる。

とか言うのは有りですか?

2010-07-28

http://anond.hatelabo.jp/20100728222811

JAVAで書いてもいいが、システムが巨大という意味にはJavaVMの移植とかLinuxカーネルパッチという意味まで含まれているので

CだろうとC++だろうと使うことになるのは変わらんし

今時、list なんぞ を1から手書きするくらいならSTLリスト使ってメモリアロケーターだけ書き換えるわw

http://anond.hatelabo.jp/20100728222245

マルチスレッドタイミング問題とか シグナルの問題とか

高負荷になるとカーネルコールから特殊なエラーが帰ってくるとか

単体じゃ出ない問題もあるし

人が違う、会社が違うっていうところから来る意識違いとか、結構テストしてもでるし。 結合のデバッグはなくならんよ。

あとは、引き継いで、数年後に違う人が改造するとかのときに、

あまりにも、STLガツガツだよ改造しにくい時があるんだよ。

数年後の改造って、当初の設計になかった追加機能だから、設計上できなくて結構改造ってときに

ベタベタに書いてあるか、STLガツガツに書いてあるかとか結構違ってくるしね。

 

メソッドが細かすぎるとコールスタックが深くなりすぎて、それはそれで追っかけにくいというのもある。

時間が経つと、書いた人がもういないとか、よくあるしね。

そういう時に、改造しやすくデバッグしやすく行儀よく書いてあるとすげー助かる。

 

最近は、年取ったのもあって、難しい部分は

自分が書いて、若い人にパスする。ってケースも増えてきて

そういう時は、ベタにかけるときはベタに書くようにしてる。

http://anond.hatelabo.jp/20100728215904

それがSTLの本来の使い方。

変数宣言すると名前覚えたりするの面倒なんだよ。そっちの方が楽だし、OCamlやFSharpみたいな関数型言語に慣れたら一時変数苦痛でしかない。

2010-07-26

勘弁してほしい時~勘弁してほしい時~

 

STLvectorは重いというから、調べてみたらSTLが古くてiteratorの実装がクラスだったとき~とき~

 

STLvectorは重いというから、調べてみたら、大きなvectorに対してeraseを使っていたとき~とき~

 

STLvectorは重いというから、調べてみたら、メモリが足りなくなったら2倍でreservするという実装だが初期値が小さくて、実際に使うのが大きな数だっとき~とき~

 

どうでもいいけどvec.reserve(strlen(hogehoge))のあとにstrcpyがあったときー

2010-02-22

http://d.hatena.ne.jp/faith_and_brave/20100220/1266673222

C++0x 読んだが ダメっぽいな。

まず第一にエンタープライズでの開発が考慮されていない。エンタープライズの開発だと100人200人 マスタークラスから ジュニアーまで様々なレベル開発者が携わる。

その中で重要になってくるのは可読性。

はっきり言って、歴史的な可読性を犠牲にして効率が上がるならともかく、気持ちの問題程度の効率では意味がない。

第2に

スレッドファイバーの違いぐらいわかれ、わざわざスレッド起こしたらコンテキストスイッチにどれだけコスト食うんだよ。

関数コールするとレジスタとかが、スタックPUSHされるんだよってわからん奴が、IF書くなと同じで、スレッドってコンテキストスイッチの塊なんだよってのがわかんないのに下手にスレッド書かせるな。

3にラムダ式・・・いらん・・・必要なのは曲芸じゃない、可読性。可読性を犠牲にして早くなるならともかく・・・

4にforeachではlastを変数に取るな。途中でReallocしたり、eraseしたりしたときに余計なバグを生んで面倒だ。レビューの時も邪魔。速度?速度が必要な背景でSTLVector使うな。配列使うかポインタ使え。

なんつーか、トータルで見て、次はC++と各種OpenCLとかGLとかのライブラリの集合だな。C++0xはまともに使う人もいなさそう。正規表現とかもライブラリ使えば良いし、そもそもC系列ならBisonとかLRとかだろうと。C系列の使い手ならBNFを使え。正規表現使いたければそれこそ、Perl使え。

2009-08-17

C++ STLvectorコンテナのsize()関数

醜悪なことにこいつの返り値はintではなくunsigned intのようだ。

従って、サイズ0のvectorに対して

vec.size()-1

という演算をすると結果は-1ではなく、オーバーフローしてunsigned intの最大値になる。

サイズがゼロだったら-1になるだろjkとか思ってコーディングすると酷い目にあう。

2008-08-25

http://anond.hatelabo.jp/20080825010326

javaとかさっぱわかんないペーペーですけど

>ListやMapループで回して値を取る時Iterator使うのは何故?

それはね、Javaにはポインタがないからなんだよ。

ポインタのあるC++でもSTLではIteratorを使うわけで、

もちろんjavaの場合はポインタの代用という側面はあるにしても、

アルゴリズムの型依存性を無くす目的もあるんじゃないかなーと思うんですが…。

2008-06-27

[][][]文字列char*をキーにするのなら、気をつけたいこと

http://www.sgi.com/tech/stl/Map.html

stlmapクラスtree継承してるようなしてないような。

それはともかく、文字列をキーにしている場合、文字列を比較するための処理を定義してやらないといけない。

map<char*, object*, COMPARE> hogehoge;

もし、

map<char*, object*> hogehoge;

としてしまうと、キーは文字列ではなく、文字列アドレスになってしまう。

、、、string使えばいいのか。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん