Home > C++ > あれ?joinなくね?

あれ?joinなくね?

  • 2008-10-17 (金) 0:36
  • C++

C++ってjoinないんじゃない?あるの?というわけで、あるのかどうかよく知らないけど、テンプレートを思い出すために作った。


/* イテレータ::value_typeでイテレータが示す要素の型を取れる。
 * ただし、typenameをつけておかないとコンパイラに「なんのこっちゃ?」って怒られる。
 */
template< typename InIt >
typename InIt::value_type join(InIt begin, InIt end, typename InIt::value_type sep)
{
	typename InIt::value_type result;

	for (InIt it = begin; it < end; it++) {
		result += *it;
		if (it + 1 < end) result += sep;
	}
	return result;
}

int main(int argc, char* argv[])
{
	std::vector<std::string> a;
	a.push_back("abc");
	a.push_back("def");
	a.push_back("ghi");

	std::string a_joined(join(a.begin(), a.end(), ":"));
	std::cout << a_joined << std::endl;

	std::vector<std::wstring> b;
	b.push_back(L"abc");
	b.push_back(L"def");
	b.push_back(L"ghi");

	std::wstring b_joined(join(b.begin(), b.end(), std::wstring(L":")));
	std::wcout << b_joined << std::endl;

	return 0;
}

abc:def:ghi
abc:def:ghi

こんなんでいいのかしら?まあ、上記レベルでは使えたからいいや。
そんなことよりwstringってwcoutで表示できるのかー。

以上

2008-10-17 : 修正
value_typeを使うようにした。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://red-treasure.com/report/wp-trackback.php?p=284
Listed below are links to weblogs that reference
あれ?joinなくね? from コスミー報告書[社外秘]

Home > C++ > あれ?joinなくね?

Search
Feeds
Meta
 合計:000304
 今日:0022 昨日:0113

Return to page top