Develop and Download Open Source Software

View サンプルコード(32bit整数, その他のコンテナを使用)

category(Tag) tree

file info

category(Tag)
サンプル
file name
sample-32bit-container
last update
2008-12-16 14:29
type
Plain Text
editor
しまたろ
description
文字型として32bit整数を、文字列としてstd::list, std::deque等のコンテナを使用しています。
language
Japanese
translate
////////////////////////////////////////////////////////////
// Sample: 32bit整数とコンテナを使用
#include <list>
#include <deque>
#include <iostream>
#include "mercury/regex.h"

int main(void)
{
	// データをセットするのが面倒だけど、その気になれば配列やstd::string以外でもできないことはない
	typedef unsigned long utf32_t;
	typedef std::list <utf32_t> utf32_list_t;
	typedef std::deque<utf32_t> utf32_deque_t;

	utf32_list_t pattern;
	pattern.push_back('(');
	pattern.push_back('a');
	pattern.push_back('|');
	pattern.push_back('b');
	pattern.push_back('c');
	pattern.push_back(')');
	pattern.push_back('*');
	pattern.push_back('d');
	pattern.push_back('*');
	pattern.push_back('e');

	utf32_deque_t text;
	text.push_back('a');
	text.push_back('b');
	text.push_back('c');
	text.push_back('d');
	text.push_back('e');

	// char, wchar_t以外の型はbasic_regexを使う
	const mercury::basic_regex<utf32_t> re(pattern);    // コンテナをそのまま渡してもいいし…
	if(re.match(text.begin(), text.end()))              // イテレータを渡してもいい
	{
		std::cout << "マッチしました" << std::endl;
	}
	else
	{
		std::cout << "マッチしませんでした" << std::endl;
	}
	return 0;
}