以前 MFC を使用した StringArrayToString を変更したが,今回は STL 版.
tstring String_Join (const std::vector<tstring>& srcAry,LPCTSTR sp)
{
tstring str ;
for (size_t index= 0 ; index<srcAry.size() ; index++) {
str += srcAry[index] ;
if (index+1 == srcAry.size()) { continue ; }
str += sp ;
}
return str ;
}
MFC 版は VC 6 までだったが,STL 版では VC 7 も遅い.
tstring String_Join (const std::vector<tstring>& srcAry,LPCTSTR sp)
{
tstring str ;
v_tstring tmpSA ;
tstring tmpStr ;
for (size_t index= 0 ; index<srcAry.size() ; index++) {
tmpStr += srcAry[index] ;
if (index+1 == srcAry.size()) { continue ; }
if ((index%128) == 100) {
tmpSA.push_back(tmpStr) ;
tmpStr.erase() ;
continue ;
}
tmpStr += sp ;
}
if (!tmpStr.empty()) {
tmpSA.push_back(tmpStr) ;
}
if (tmpSA.size() > 1) {
str = ::String_Join(tmpSA,sp) ;
}
else if (tmpSA.size() == 1) {
str = tmpSA[0] ;
}
return str ;
}