在C++中处理复杂逻辑通常涉及到多个条件和循环的使用,以及函数和类的组织。下面是一个示例,展示了如何处理复杂的逻辑:
#include <iostream>#include <vector>#include <string>// 函数声明bool is_valid(const std::string& s);void process_data(std::vector<std::string>& data);int main() { std::vector<std::string> data = {"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<std::string>& data) { std::vector<std::string> valid_data; std::vector<std::string> 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 函数分类数据。输出有效和无效的数据。通过这种方式,可以将复杂的逻辑分解为多个小函数,每个函数负责一个特定的任务,从而使代码更易于理解和维护。