2012年01月17日11:45 カテゴリアルゴリズム百選Tips Algorithm - 連想配列の実装としてのハッシュはオワコン? 珠玉のプログラミング Jon Bentley / 小林健一郎訳 つまり「終わったコンテナ」。 以前からうすぼんやりと考えて来た危惧が、すこしはっきりと見えてきた。 徳丸浩の日記: Webアプリケーションに対する広範なDoS攻撃手法(hashdos)の影響と対策 もうそろそろハッシュ(テーブル)以外の手段の連想配列の実装手段を本格的に模索するべきではないか、と。 そのデータ構造は、君の魂を差し出すに足るものかい? 連想配列(Associative array)がコレクション(Collection)、すなわち数多のデータ構造をまとめるデータ構造としての覇者となったのはもはや疑いようがない事実でしょう「配列で実装されるデータ構造ではなくて、配列を実装するデータ構
perl で関数戻り値で配列を複数返す方法を教えてください。 二つの配列で戻り値を受けいているつもりですが、ひとつの配列にデータがまとめられてしまいます。 ご存知の方ご教示ください。 sub a { my @a = ("1", "2", "3"); my @b = ("4", "5"); return (@a, @b); } my (@aaa, @bbb) = a(); foreach $val (@aaa) { print "aaa:$val\n" } foreach $val (@bbb) { print "bbb:$val\n" } <実行結果> aaa:1 aaa:2 aaa:3 aaa:4 aaa:5
ある文字列から、正規表現にマッチした文字列のリストを、配列に入れる方法です。 意外と最近までこれ知らなかったです。 #-- 文字列 $string = '0a12bc345def6789ghij'; #-- 数字だけを抽出して配列に入れる @nums = $string =~ /[0-9]+/g; #-- 配列に入った値を出力 foreach $num (@nums){ print $num."\n"; } 上記の出力結果は、 0 12 345 6789 となるはずです。 Twitter始めました。Followはお気軽にどうぞ。 関連するブログ記事 perl / PHP / JavaScript 各言語での URL(URI)エンコード・デコード方法まとめ [2009年12月 2日 18:47] perl の CGI や PHP でフォーム入力チェックによく使う正規表現のまとめ [2009年
特殊文字を HTML エンティティに変換してくれるhtmlspecialchars関数。 PHPでは基本中の基本である関数でありながら、名前の長さやオプションの設定などが面倒で困ったものです。「htmlspecialchars」は覚えられても、オプションの「ENT_QUOTES」まで覚えるのはなかなか大変だったりします。でも、ここで手を抜くと簡単に脆弱なアプリケーションができあがってしまう危険性があります。特にユーザーからの入力には、手軽にがっちり入力保険をかけておくべきです。 そんなわけで、htmlspecialcharsを簡単に扱えるようにする方法を考えてみました。 お知らせ:PHP5.4にて、htmlspecialchars()関数に互換性の問題が出てきましたので、当ページでも第三引数に文字コードを指定するコードに変更しました。以下、第三引数の"UTF-8"の部分は、利用中の文字コー
ある条件でソートされているIDのリストを与えられて、なんとなく近い範囲でマッチングさせたいという要件があった。配列からの任意の要素の取り出しは O(n) だけど、末尾や末尾から固定した範囲の要素に限って言えば O(1) なので、後ろの方からマッチングさせながら要素を取り出していけば O(n) でマッチングできるはず。 なんにも難しいことは無い話で、 Python で書けばこうなる。 list.pop() が末尾からのインデックス (-1 が最後の要素を表す) を許すのが地味に便利だ。 # coding: utf-8 def match(seq, r=100): from random import randint # 奇数個の時に先頭周辺の要素がボッチになるのが嫌なら、先に後ろの方の # 要素を取り除いて偶数にしておくこと. while len(seq) >= 2: # 引数を省略すると末
Perl で配列を処理する場合、インデックスを意識しなくて良いのであれば以下の様に書けます。 my @week = qw/sun mon tue wed thu fri sat/; foreach (@week) { s/^(.)/uc($1)/e; # 頭文字を大文字に変換する } ## この時点で @week の中身は ## Sun, Mon, Tue, Wed, Thu, Fri, Sat ## となっている。 一方、インデックスを意識する必要がある場合、大抵は以下の様にしています。(私の場合) my @week = qw/Sun Mon Tue Wed Thu Fri Sat/; # foreach を利用するパターン foreach (0..$#week) { printf '[%d] %s' . "\n", $_, $week[$_]; # インデックスと共にリストの内容を表示
すしを奢らなければいけないなんて、バトンを渡されてから知りました。おいしい寿司が食いたい sekimura です。 今回は使いこなすと気持ちよくて、使いすぎると気持ち悪いと言われてしまう grep と map の使い方について紹介します。この二つは文法がよく似ていて、同時に使われることも多いので一気に両方の使い方を覚えるのをおすすめします。 grep: 配列をフィルターする まずは、前回覚えた perldoc を使って grep とはなにかを調べてみましょう。 $ perldoc -f grep grep BLOCK LIST grep EXPR,LIST This is similar in spirit to, but not the same as, grep(1) and its relatives. In particular, it is not limited to usin
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! « 配列を初期化する | メイン | 配列に値を追加する(push, unshift) » カテゴリー:リスト(配列) 配列から値を取り出す(pop, shift) 配列の先頭、または末尾から値を取り出すにはpop, shiftを用いれば良い。 ;# ;#配列から値を取り出す。 ;# use strict; #--------------------------# # 配列を初期化 # #--------------------------# my @array = (1..5); #--------------------------# # 値を取り出す # #--------------------------# #-- 先頭から取り出す --# print shift(@array),
■ HTTPでHashやArrayを送る手法に仕様は存在しない……の? jQueryでこんなふうに書くと: $.post('/', { hash: { foo: 'hoge', bar: 'fuga'}, array: ['baz', 'piyo'] }); サーバ側でこんなふうに受け取れて(これはSinatra): post '/' do params.each do |key, val| puts "#{key}: #{val} as #{val.class}" end end ちゃんとHashやArrayとしてアクセスできる: hash: {"foo"=>"hoge", "bar"=>"fuga"} as Hash array: ["baz", "piyo"] as Array ああこりゃ便利だね、で済ましてもいいんだけど、HTTP POSTの中身なんてただのバイト列なんだから型の情
皆さんJavaScriptで配列の要素数を知りたい時はlengthプロパティを参照しているかと思います。 しかし、このlengthプロパティですが、実は配列の要素数の値では無いんです。 今回のエントリーでは、そんなlengthプロパティの動作をソースコード付きで解説したいと思います。 以下サンプルコード <script type="text/javascript"> //配列を作成(要素は二つ) var array = ["aaa","bbb"]; //出力を期待する数値は2 alert(array.length); //配列に値を追加(要素は三つになる) array.push("ccc"); //出力を期待する数値は3 alert(array.length); //要素数を加味し、重複しない添え字に要素を追加する(要素は四つ) array[10] = "ddd"; //出力を期待する数値
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
配列をランダムに並び替える。かっこいいスクリプト Perlで配列をランダムな順番に並び替えるスクリプトを書いてベンチマーク取ってみた。 環境はActivePerl 5.8 スクリプトは #!/usr/bin/perl use strict; use Benchmark; my @array=qw(a b c d e f g h i j k l m n); Benchmark::timethese(50000, { use_sort=>\&use_sort, use_foreach=>\&use_foreach, }); sub use_sort{ my @new= map {$array[$_->[0]]} sort {$a->[1] <=> $b->[1]} map {[$_,rand(1)]} 0..$#array; } sub use_foreach{ my @new = (); f
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く