トップ
新規
一覧
単語検索
最終更新
ヘルプ
ログイン
アールメカブ
CPP_boost_tokenize
をテンプレートにして作成
開始行:
[[Programming]]
* boost ライブラリを使って,トークン化とベクトル化 [#oe86...
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <boost/tokenizer.hpp>
#include <ctime>
using namespace std;
int main(int arg, char *argv[]){
time_t startT, stopT;
time(&startT);
vector<string> v;
string finame;
string ss;// strtok を使う場合は,
// 読み込んだ行はchar 変数におさめる
//char ss[256];
ifstream fin;
typedef boost::tokenizer<> tokenizer1;
finame = argv[1];
fin.open(finame.c_str());
if(!fin) return 1;
while(fin >> ss){
tokenizer1 tok1( ss);
for( tokenizer1::iterator it=tok1.begin(); it!=tok1.e...
// cout << "TOKEN: " << *it << endl;
v.push_back(*it);
}
fin.close();
time(&stopT);
cout << v.size() << "Time: " << difftime(stopT,start...
}
以下は[[ここ:http://www.kmonos.net/alang/boost/classes/to...
>
必要なヘッダ <boost/tokenizer.hpp>
出来ること 文字列切り分け
リファレンス en / jp
sample
<
#include <iostream>
#include <string>
#include <boost/tokenizer.hpp>
using namespace std;
int main()
{
string str1 = "this is a pen";
// デフォルトでは、区切り文字(空白とかコンマとか)で分...
typedef boost::tokenizer<> tokenizer1;
tokenizer1 tok1( str1 );
for( tokenizer1::iterator it=tok1.begin(); it!=tok1.end(...
cout << "TOKEN: " << *it << endl;
string str2 = "20020903";
// 4文字、2文字、2文字に分割してみる。
const int offsets[] = {4,2,2};
boost::offset_separator ofs( offsets, offsets+3 );
typedef boost::tokenizer<boost::offset_separator>
tokenizer2;
tokenizer2 tok2( str2, ofs );
for( tokenizer2::iterator it=tok2.begin(); it!=tok2.end(...
cout << "TOKEN: " << *it << endl;
return 0;
}
実行例
TOKEN: this
TOKEN: is
TOKEN: a
TOKEN: pen
TOKEN: 2002
TOKEN: 09
TOKEN: 03
etc
まぁ、見たまんまです。コマンドラインの解析とか、 コンマ区...
時間関数については[[ここ>http://www.geocities.jp/cbc_vbne...
終了行:
[[Programming]]
* boost ライブラリを使って,トークン化とベクトル化 [#oe86...
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <boost/tokenizer.hpp>
#include <ctime>
using namespace std;
int main(int arg, char *argv[]){
time_t startT, stopT;
time(&startT);
vector<string> v;
string finame;
string ss;// strtok を使う場合は,
// 読み込んだ行はchar 変数におさめる
//char ss[256];
ifstream fin;
typedef boost::tokenizer<> tokenizer1;
finame = argv[1];
fin.open(finame.c_str());
if(!fin) return 1;
while(fin >> ss){
tokenizer1 tok1( ss);
for( tokenizer1::iterator it=tok1.begin(); it!=tok1.e...
// cout << "TOKEN: " << *it << endl;
v.push_back(*it);
}
fin.close();
time(&stopT);
cout << v.size() << "Time: " << difftime(stopT,start...
}
以下は[[ここ:http://www.kmonos.net/alang/boost/classes/to...
>
必要なヘッダ <boost/tokenizer.hpp>
出来ること 文字列切り分け
リファレンス en / jp
sample
<
#include <iostream>
#include <string>
#include <boost/tokenizer.hpp>
using namespace std;
int main()
{
string str1 = "this is a pen";
// デフォルトでは、区切り文字(空白とかコンマとか)で分...
typedef boost::tokenizer<> tokenizer1;
tokenizer1 tok1( str1 );
for( tokenizer1::iterator it=tok1.begin(); it!=tok1.end(...
cout << "TOKEN: " << *it << endl;
string str2 = "20020903";
// 4文字、2文字、2文字に分割してみる。
const int offsets[] = {4,2,2};
boost::offset_separator ofs( offsets, offsets+3 );
typedef boost::tokenizer<boost::offset_separator>
tokenizer2;
tokenizer2 tok2( str2, ofs );
for( tokenizer2::iterator it=tok2.begin(); it!=tok2.end(...
cout << "TOKEN: " << *it << endl;
return 0;
}
実行例
TOKEN: this
TOKEN: is
TOKEN: a
TOKEN: pen
TOKEN: 2002
TOKEN: 09
TOKEN: 03
etc
まぁ、見たまんまです。コマンドラインの解析とか、 コンマ区...
時間関数については[[ここ>http://www.geocities.jp/cbc_vbne...
ページ名: