在C++中处理复杂逻辑通常涉及到多个条件和循环的使用,以及函数和类的组织。下面是一个示例,展示了如何处理复杂的逻辑:
#include
#include
#include
// 函数声明
bool is_valid(const std::string& s);
void process_data(std::vector& data);
int main() {
std::vector data = https://www.yisu.com/ask/{"hello", "world", "123", "456", "!@#", "abc"};
// 处理数据
process_data(data);
return 0;
}
// 函数定义:检查字符串是否有效
bool is_valid(const std::string& s) {
if (s.empty()) {
return false;
}
for (char c : s) {
if (!isdigit(c)) {
return false;
}
}
return true;
}
// 函数定义:处理数据
void process_data(std::vector& data) {
std::vector valid_data;
std::vector invalid_data;
// 遍历数据并分类
for (const std::string& s : data) {
if (is_valid(s)) {
valid_data.push_back(s);
} else {
invalid_data.push_back(s);
}
}
// 输出有效数据
std::cout << "Valid data:" << std::endl;
for (const std::string& s : valid_data) {
std::cout<< s << std::endl;
}
// 输出无效数据
std::cout << "Invalid data:" << std::endl;
for (const std::string& s : invalid_data) {
std::cout<< s << std::endl;
}
}
代码解释
-
函数声明和定义:
is_valid
函数用于检查字符串是否只包含数字。process_data
函数用于处理数据,将有效和无效的数据分别存储在两个不同的向量中。
-
主函数:
- 创建一个包含多个字符串的向量
data
。 - 调用
process_data
函数处理这些数据。
- 创建一个包含多个字符串的向量
-
is_valid 函数:
- 检查字符串是否为空。
- 遍历字符串中的每个字符,检查是否都是数字。
-
process_data 函数:
- 创建两个向量
valid_data
和invalid_data
用于存储有效和无效的数据。 - 遍历输入数据,使用
is_valid
函数分类数据。 - 输出有效和无效的数据。
- 创建两个向量
通过这种方式,可以将复杂的逻辑分解为多个小函数,每个函数负责一个特定的任务,从而使代码更易于理解和维护。