C++ kmp アルゴリズム テンプレート コード解釈

C++ kmp アルゴリズム テンプレート コード解釈

C++ プログラミング言語でのテンプレートの適用は、比較的複雑な適用技術です。今日は、C++ kmp アルゴリズム テンプレートの基本的な適用から学習して、この知識の理解を深め、将来の適用を容易にし、プログラミングの効率を向上させます。

使用時に次の2行のコードを追加するだけです

  1. #include <  ベクター>    
  2. 名前空間 std を使用します。

C++ kmp アルゴリズム テンプレート パラメータの説明#t#

const T *一致するソース文字列

TL sourceLen 一致させる文字列の長さ

const T *パターン パターン文字列

TLパターン文字列の長さ

C++ kmp アルゴリズム テンプレート コード例:

  1. テンプレート<  クラスT、クラス TL >    
  2. インライン int kmpmatch(const T *source,TL sourceLen,
    const T *パターン、TL パターン長さ)
  3. {
  4. ベクトル<   int >次;
  5. ( int i = 0 ; i <   パターン長さ; i++)
  6. 次へ.push_back(0);
  7. 次[0] = -1;
  8. for( int i = 1 ; i <   パターン長さ; i++)
  9. {
  10. int j =次の[i - 1];
  11. while ( (パターン[i] != パターン[i + 1])&& (j > = 0))
  12. {
  13. j =[j];
  14. }
  15. (パターン[i] == パターン[j + 1])の場合
  16. {
  17. 次[i] = j + 1;
  18. }
  19. それ以外
  20. {
  21. 次[i] = -1;
  22. }
  23. }
  24. 整数i = 0 ;
  25. 整数j = 0 ;
  26. 一方、(( i <   ソース長さ) && ( j <   パターン長さ))
  27. {
  28. if ( ソース[i] == パターン[j] )
  29. {
  30. 私は++;
  31. j++;
  32. }
  33. それ以外の場合 ( j == 0 )
  34. {
  35. 私は++;
  36. }
  37. それ以外
  38. {
  39. j =次の[j - 1 ] + 1;
  40. }
  41. }
  42. (j > = パターン長)の場合
  43. {
  44. if ( !next.empty() )
  45. 次へ.clear();
  46. i - パターン長を返します。
  47. }
  48. それ以外
  49. {
  50. if ( !next.empty() )
  51. 次へ.clear();
  52. -1 を返します。
  53. }
  54. }

上記は、C++ kmp アルゴリズム テンプレートの紹介です。

<<:  Microsoft IE8 の「ランダム ブラウザ選択」アルゴリズムはランダムではなく、不利な状況に陥っています。

>>:  VB.NET 暗号化アルゴリズムの基本概念の分析

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

スマート製造:デジタル世界と物理世界の統合

スマート製造:デジタル世界と物理世界の統合自動車業界と製造業界の状況の変化により、サプライ チェーン...

OpenAIは低コストで開発者を引き付けるために大規模なアップデートを計画している

10月12日、外国メディアは関係者の話として、人工知能(AI)研究企業OpenAIが来月、開発者向け...

...

Wi-Fi の AI がワイヤレス接続をどのように形作るか

2023年までに、おそらく人工知能ほど普及するテクノロジーはなくなるでしょう。生成型 AI の爆発的...

パドルパドル中国ツアーは、中小企業のソフトウェアおよびハードウェア製品の革新の需要に応えるために深センに上陸しました

AI応用の時代において、人工知能技術は研究室から産業化へと移行しています。人工知能が徐々に製品応用市...

COVID-19パンデミックは不動産業界のインテリジェントな変革とアップグレードを加速させた

[[342701]] スマートホーム革命はかなり前から本格化しています。住宅所有者はデータと IoT...

清華大学の学生が強化学習プラットフォーム「TianShou」を開発:数千行のコードが完成、オープンソース化

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

マイクロソフトの「Office の新時代」イベント プレビューでは AI が紹介される: 新しい描画アプリ、ゲーム フレーム レートの向上など

マイクロソフトは3月8日、北京時間3月22日午前1時にオンライン新製品発表会を開催することを決定した...

AIは40の言語を理解でき、15の言語で22の部門で1位を獲得しました。その背景には、中国チームの22年間の粘り強さがあります。

一気に15言語で22の1位を獲得!いや、もっとすごいのは、彼は40以上の言語を読んで理解できるという...

初心者のための NLP: 先のことを心配せずに、1 つの記事でコーパスの前処理を理解しましょう

自然言語処理は AI の最高峰であり、コーパス前処理は自然言語処理の基礎です。 [[336067]]...

GoogleのオープンソースAIは92%の精度で音を区別できる

[[249335]] VentureBeatによると、Googleの人工知能研究部門は音声認識におい...

AIと自動化はCOVID-19後のビジネス成功の鍵

COVID-19 パンデミックが発生する前は、ビジネスリーダーたちは、ビジネス運営の最適化、収益性の...

Tech Neo 5月号: ディープラーニング

51CTO.com+プラットフォームは、オリジナルの技術コンテンツの選択と絶妙なレイアウトを通じて...