- 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
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 コスミー報告書[社外秘]