Qtとstd :: stringの一般的で効率的なトリミングアルゴリズムは何ですか?

iammilind

前面と背面の空白を削除するために、Qtはを提供していますQByteArray::trimmed()ただし、基になる文字列のコピーを毎回不必要に作成します。

空白をトリミングするための一般的で効率的な方法(できればテンプレートを使用)はありますQByteArray, QString, std:: stringか?

iammilind

1つの単純な方法:

template<typename T>
T& Trim (T& value)
{
  auto pos = value.size();
  while(pos != 0 and value[--pos] == ' ');
  if(++pos < value.size())
    value.erase(pos);

  if(value.size() > 0)
  {
    pos = -1;
    while(value[++pos] == ' ');
    if(pos > 0)
      value.erase(0, pos);
  }
  return value;
}

上記は、次のようなメソッドを持つすべてのタイプをサポートしますstd::string

  • size()
  • operator[] const
  • erase(pos, n)

残念ながら、Qtにはerase()(名前はremove()が欠けています。QtタイプQStringをサポートするために、QByteArray次のラッパーを使用できます。

template<class String>
struct QtWrap
{
  String& m_Value;

  auto size () const { return m_Value.size(); }
  auto erase (int pos) { return m_Value.truncate(pos); }
  auto erase (int pos, int length) { return m_Value.remove(pos, length); }
  auto& operator[] (const int pos) const { return m_Value.data()[pos]; }
};

使用法:

QByteArray s;
QtWrap<QByteArray> qs{s};
Trim(qs);  // Tested OK in QtCreator: Modifies the underlying `s`

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

グラフ重心を見つけるための効率的なアルゴリズムとは何ですか?

分類Dev

なぜ一般的なアルゴリズムの述語バージョンと非述語バージョンを区別するのですか?

分類Dev

ポーターとランカスターのステミングアルゴリズムの主な違いと利点は何ですか?

分類Dev

ハミルトン閉路; 証明:HCが存在することを判断するための効率的なアルゴリズムがある場合は、効率的なFINDアルゴリズムがあります

分類Dev

ダブルスとサブセットを持つサブセットを見つけるための効率的なアルゴリズムは一緒です

分類Dev

チューリングマシンとアルゴリズムの違いは何ですか?

分類Dev

A \ BのMATLABアルゴリズムとは何ですか?

分類Dev

一般的なネットリンクのポリシーと属性の概念は何ですか?

分類Dev

アルゴリズムとして適格なものは何ですか?

分類Dev

符号を割り当てることにより、一連のintの合計が0になるかどうかを確認するための最も効率的なアルゴリズムは何ですか?

分類Dev

これを行うことができる効率的なアルゴリズムはありますか?

分類Dev

一意のフォームアルゴリズムと一意のリストコンテナの違いは何ですか?

分類Dev

トップダウンアルゴリズムと分割統治アルゴリズムの違いは何ですか?

分類Dev

OpenCVのkmeansアルゴリズムとcvKMeans2アルゴリズムの違いは何ですか?

分類Dev

基礎となるアルゴリズムが一般的に安定しているのに、Swiftの.sort()メソッドが安定性を保証できないのはなぜですか?

分類Dev

生成アルゴリズムと識別アルゴリズムの違いは何ですか?

分類Dev

遺伝的アルゴリズムと反復局所探索アルゴリズムの違いは何ですか?

分類Dev

BFSアルゴリズムとDFSアルゴリズムの違いは何ですか?

分類Dev

Youtubeコメントシステムのソート/ランキングアルゴリズムとは何ですか?

分類Dev

クロスエントロピーと遺伝的アルゴリズムの違いは何ですか?

分類Dev

1つのアプリケーションでPyQt4とPyQt5の両方をサポートする一般的な方法は何ですか?

分類Dev

ミニマックスアルゴリズムの最大エッジとは何ですか?

分類Dev

JVM Schedulingアルゴリズムとは何ですか?

分類Dev

Hi / Loアルゴリズムとは何ですか?

分類Dev

Hi / Loアルゴリズムとは何ですか?

分類Dev

Hi / Loアルゴリズムとは何ですか?

分類Dev

劣線形アルゴリズムとは何ですか?

分類Dev

ワンパスアルゴリズムとは何ですか?私のものですか?

分類Dev

キーと値のペアからJSONオブジェクトを「フィルタリング」する最も効率的な方法は何ですか?

Related 関連記事

  1. 1

    グラフ重心を見つけるための効率的なアルゴリズムとは何ですか?

  2. 2

    なぜ一般的なアルゴリズムの述語バージョンと非述語バージョンを区別するのですか?

  3. 3

    ポーターとランカスターのステミングアルゴリズムの主な違いと利点は何ですか?

  4. 4

    ハミルトン閉路; 証明:HCが存在することを判断するための効率的なアルゴリズムがある場合は、効率的なFINDアルゴリズムがあります

  5. 5

    ダブルスとサブセットを持つサブセットを見つけるための効率的なアルゴリズムは一緒です

  6. 6

    チューリングマシンとアルゴリズムの違いは何ですか?

  7. 7

    A \ BのMATLABアルゴリズムとは何ですか?

  8. 8

    一般的なネットリンクのポリシーと属性の概念は何ですか?

  9. 9

    アルゴリズムとして適格なものは何ですか?

  10. 10

    符号を割り当てることにより、一連のintの合計が0になるかどうかを確認するための最も効率的なアルゴリズムは何ですか?

  11. 11

    これを行うことができる効率的なアルゴリズムはありますか?

  12. 12

    一意のフォームアルゴリズムと一意のリストコンテナの違いは何ですか?

  13. 13

    トップダウンアルゴリズムと分割統治アルゴリズムの違いは何ですか?

  14. 14

    OpenCVのkmeansアルゴリズムとcvKMeans2アルゴリズムの違いは何ですか?

  15. 15

    基礎となるアルゴリズムが一般的に安定しているのに、Swiftの.sort()メソッドが安定性を保証できないのはなぜですか?

  16. 16

    生成アルゴリズムと識別アルゴリズムの違いは何ですか?

  17. 17

    遺伝的アルゴリズムと反復局所探索アルゴリズムの違いは何ですか?

  18. 18

    BFSアルゴリズムとDFSアルゴリズムの違いは何ですか?

  19. 19

    Youtubeコメントシステムのソート/ランキングアルゴリズムとは何ですか?

  20. 20

    クロスエントロピーと遺伝的アルゴリズムの違いは何ですか?

  21. 21

    1つのアプリケーションでPyQt4とPyQt5の両方をサポートする一般的な方法は何ですか?

  22. 22

    ミニマックスアルゴリズムの最大エッジとは何ですか?

  23. 23

    JVM Schedulingアルゴリズムとは何ですか?

  24. 24

    Hi / Loアルゴリズムとは何ですか?

  25. 25

    Hi / Loアルゴリズムとは何ですか?

  26. 26

    Hi / Loアルゴリズムとは何ですか?

  27. 27

    劣線形アルゴリズムとは何ですか?

  28. 28

    ワンパスアルゴリズムとは何ですか?私のものですか?

  29. 29

    キーと値のペアからJSONオブジェクトを「フィルタリング」する最も効率的な方法は何ですか?

ホットタグ

アーカイブ