Iwao Dev

気付いたことをメモしています.

この画面は、簡易表示です

2015/11/19

vector -> tstring

以前 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 ;
  }

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ



    top

    %d人のブロガーが「いいね」をつけました。