代码拉取完成,页面将自动刷新
同步操作将从 cyberdash/数据结构(C++模板实现) 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*!
* @file test.cpp
* @author CyberDash计算机考研, cyberdash@163.com(抖音id:cyberdash_yuan)
* @brief 字符串匹配测试.cpp文件
* @version 0.2.1
* @date 2021-08-23
*/
#include "test.h"
#include "cyber_dash_string.h"
/*!
* @brief **测试-字符串-基本函数**
* @note
* 测试-字符串-基本函数
* -----------------
* -----------------
*
* -----------------
* 测试重载==\n
* 测试重载!=\n
* 测试复制构造函数\n
* 测试重载+=\n
* 测试重载[]\n
* 测试重载>,>=,<,<=\n
* 测试重载<<\n
*
*
* -----------------
*/
void TestStringBaseFunctions() {
cout << endl;
cout << "|------------------------ CyberDash ------------------------|" << endl;
cout << "| Test String base functions |" << endl;
cout << "| 测试-字符串-基本函数 |" << endl << endl << endl;
String str1("cyber");
String str2("dash");
// - 测试重载==
cout << "测试重载==" << endl;
bool is_same = str1 == str2;
cout << is_same << endl << endl;
// - 测试重载!=
cout << "测试重载!=" << endl;
bool is_not_same = str1 != str2;
cout << is_not_same << endl << endl;
// - 测试复制构造函数
cout << "测试复制构造" << endl;
String str3 = str1;
cout << str3 << endl << endl;
// - 测试重载+=
cout << "测试重载+=" << endl;
str1 += str2;
cout << str1 <<endl << endl;
// - 测试重载[]
cout << "测试重载[]" << endl;
cout << str1[0] << endl;
str1[0] = 'C';
cout << str1 << endl << endl;
// - 测试重载>,>=,<,<=
cout << "测试重载>,>=,<,<=" << endl;
String str4("elements");
String str5("element");
cout << (str4 > str5) << endl;
cout << (str4 >= str5) << endl;
cout << (str4 < str5) << endl;
cout << (str4 <= str5) << endl;
String str6("table");
String str7("tables");
cout << (str6 > str7) << endl;
cout << (str6 >= str7) << endl;
cout << (str6 < str7) << endl;
cout << (str6 <= str7) << endl << endl;
// - 测试重载<<
cout << "测试重载<<" << endl;
String str8;
cout << str8 << endl;
cout << "-------------------------------------------------------------" << endl << endl;
}
/*!
* @brief **测试-字符串-BF算法**
* @note
* 测试-字符串-BF算法
* -----------------
* -----------------
*
* 暴力算法
*
* -----------------
* + **1 声明字符串**\n\n
* 目标串“hand in hand we can, start to understand”\n
* 模式串1"hand"\n
* 模式串2"understand"\n\n
* + **2 执行匹配**\n\n
* 获取模式串1的匹配结果\n
* 获取模式串2的匹配结果\n
*
*
* -----------------
*/
void TestBruteForceMatch() {
cout << endl;
cout << "|------------------------ CyberDash ------------------------|" << endl;
cout << "| Test BruteForceMatch |" << endl;
cout << "| 测试BF算法 |" << endl << endl << endl;
String target_str("hand in hand we can, start to understand");
String pattern_str_1("hand");
String pattern_str_2("understand");
cout << "目标串: " << target_str << endl << endl;
cout << "模式串" << pattern_str_1 << "的匹配位置: " << target_str.BruteForceMatch(pattern_str_1, 0) << endl;
cout << "模式串" << pattern_str_2 << "的匹配位置: " << target_str.BruteForceMatch(pattern_str_2, 0) << endl;
cout << "-------------------------------------------------------------" << endl << endl;
}
/*!
* @brief **测试-字符串-KMP算法**
* @note
* 测试-字符串-KMP算法
* -----------------
* -----------------
*
* -----------------
* + **1 声明字符串**\n\n
* 目标串"aaaabcd56****abcd56abcd7777"\n
* 模式串1"abcd56abcd7"\n
* 模式串2"ababc"\n
* 模式串3"bcd56abc"\n
* 模式串4"7"\n\n
* + **2 执行匹配**\n\n
* 获取模式串1的匹配结果\n
* 获取模式串2的匹配结果\n
* 获取模式串3的匹配结果\n
* 获取模式串4的匹配结果\n
*
*
* -----------------
*/
void TestKmpMatch() {
cout << endl;
cout << "|------------------------ CyberDash ------------------------|" << endl;
cout << "| Test KmpMatchByCyberdash |" << endl;
cout << "| 测试KMP算法 |" << endl << endl << endl;
String target_str("aaaabcd56****abcd56abcd7777");
String pattern_str_1("abcd56abcd7");
String pattern_str_2("ababc");
String pattern_str_3("bcd56abc");
String pattern_str_4("7");
cout << "目标串: " << target_str << endl << endl;
cout << "模式串\"" << pattern_str_1 << "\"的匹配位置: " << target_str.KmpMatchByCyberdash(pattern_str_1, 0) << endl;
cout << "模式串\"" << pattern_str_2 << "\"的匹配位置: " << target_str.KmpMatchByCyberdash(pattern_str_2, 0) << endl;
cout << "模式串\"" << pattern_str_3 << "\"的匹配位置: " << target_str.KmpMatchByCyberdash(pattern_str_3, 0) << endl;
cout << "模式串\"" << pattern_str_4 << "\"的匹配位置: " << target_str.KmpMatchByCyberdash(pattern_str_4, 0) << endl;
cout << "-------------------------------------------------------------" << endl << endl;
}
/*!
* @brief **测试-字符串-KMP算法(CyberDash版)**
* @note
* 测试-字符串-KMP算法(CyberDash版)
* -----------------------------
* -----------------------------
*
* -----------------------------
* + **1 声明字符串**\n\n
* 目标串"aaaabcd56****abcd56abcd7777"\n
* 模式串1"abcd56abcd7"\n
* 模式串2"ababc"\n
* 模式串3"bcd56abc"\n
* 模式串4"7"\n\n
* + **2 执行匹配**\n\n
* 获取模式串1的匹配结果\n
* 获取模式串2的匹配结果\n
* 获取模式串3的匹配结果\n
* 获取模式串4的匹配结果\n
*
*
* -----------------
*/
void TestKmpMatchCyberDash() {
cout << endl;
cout << "|------------------------ CyberDash ------------------------|" << endl;
cout << "| Test KmpMatch |" << endl;
cout << "| 测试KMP算法 |" << endl << endl << endl;
String target_str("aaaabcd56****abcd56abcd7777");
String pattern_str_1("abcd56abcd7");
String pattern_str_2("ababc");
String pattern_str_3("bcd56abc");
String pattern_str_4("7");
cout << "目标串: " << target_str << endl << endl;
cout << "模式串" << pattern_str_1 << "的匹配位置: " << target_str.KmpMatch(pattern_str_1, 0) << endl;
cout << "模式串" << pattern_str_2 << "的匹配位置: " << target_str.KmpMatch(pattern_str_2, 0) << endl;
cout << "模式串" << pattern_str_3 << "的匹配位置: " << target_str.KmpMatch(pattern_str_3, 0) << endl;
cout << "模式串" << pattern_str_4 << "的匹配位置: " << target_str.KmpMatch(pattern_str_4, 0) << endl;
cout << "-------------------------------------------------------------" << endl << endl;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。