ToDo:
#include <vector>
#include <set>
#include <queue>
#include <iostream>
#include <iterator>
#include <algorithm>
#include <functional>
using namespace std;
int main() {
cout << "vec\n";
vector<int> v;
v.push_back(3);
v.push_back(2);
v.push_back(4);
sort(v.begin(), v.end());
copy(v.begin(), v.end(), ostream_iterator<int>(cout, "\n"));
cout << "set\n";
set<int> s;
s.insert(3);
s.insert(2);
s.insert(4);
copy(s.begin(), s.end(), ostream_iterator<int>(cout, "\n"));
cout << "pq\n";
priority_queue<int> q;
q.push(3);
q.push(2);
q.push(4);
while (!q.empty()) {
cout << q.top() << endl;
q.pop();
}
}
実行結果
vec 2 3 4 set 2 3 4 pq 4 3 2
わからんでもないけど、 priority_queue だけ逆か…
(00:34)
soiya
(defun delete-line (&optional arg)
(interactive "P")
(progn
(kill-line arg)
(pop kill-ring)
(if (not (= (point) (save-excursion (end-of-buffer) (point))))
(delete-char 1)
)))
こういうかんじで emacs-lisp 書いてたら、 死ねとかアホとかいう趣旨のことを言われた。
なんか最後の ))) のは後ろのにひっつけないといけないらしい。
まぁその方が美的に良さそうかなぁとは同意できるんだけど、 書いてる最中に括弧閉じてテストしてみて うまく動いたら再開…とかやってる時に、 括弧の対応的に適切な場所探すのめどいじゃん とか思ったのだった。
それと同様なのかはわからんけど、 Python で if とかが並んだ後に 一気にネスト戻す時に、 どこまで空白消せばいいのかイマイチわからん。
(01:49)
| 前 | 2008年 3月 |
次 | ||||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 | |||||
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
emacs な人たちは,S 式単位でカーソルを移動したり,切り貼りとかしてるんですよね,たぶん.括弧の対応とか,見てないと思います.S 式が一文字,みたいな感覚なのかと (たぶん)
http://www.geocities.co.jp/SiliconValley-SanJose/7474/LispDevelopEnvironment.html
しかも比較演算の指定が第2じゃなくて第3テンプレート引数なので、小さい順にするには
priority_queue<int, vector<int>, greater<int> >
こうしないといけなくて大変めんどいという。
個人的には、vector<bool> と並ぶSTL最大の設計ミスな気がしてます。
emacs に (show-paren-mode t) とか書いてみるとどうでしょう
対応するカッコをハイライトして表示するようになりますが
以前僕が書いていた Scheme のコードは
(foo
(bar
(baz)
)
)
みたいなインデントでした。
カーソル移動しながら括弧の対応見ればいいんだけど、
他の言語に慣れてると、括弧の対応を把握してから移動
したかったのです。
> kinaba さん
そうそれもめんどいですね。 template template 使って priority_queue<int, vector, greater<int> > とかならなんぼかマシなのにな…と。しかしまぁめんどいのを設計ミスと言ってしまうと STL なんて全部設計ミスではないか…! とか。
> あろはさん
> けさん
括弧の対応取りは vi の方がラクなくらいですね(デフォのキーバインドが簡単なので)。まぁこのあたりのキーバインドは覚えておこうと思います…
で show-paren-mode は普通に使ってますが、ハイライトさせる→移動を決定、みたいな感じでワンテンポはさまるのがどうもうまくない感じです。
あとなんか、括弧対応取りのキーバインド覚えたとしても、
(defun hoge ()
(hoge
(foo
(bar
(baz)))))
とかの最後の部分にカーソルがあったら結局ハイライト見ないと foo と同じネストで書き足していくとかは難しいんじゃないかなー、とか。
> まめさん
たしかにそこまで割り切っちゃえばいい気もしますね。そう書いたからって失うものも特に無いですし。ただ、上記の記述の時にはこう、かなり強く罵倒されたような気がしていまして、トラウマです。もうこわくてりすぷとかかけません。
僕のコードは何やら中途半端さがあふれております。
http://shinh.skr.jp/geister/geister.scm