在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
函數分類數據。通過這種方式,可以將復雜的邏輯分解為多個小函數,每個函數負責一個特定的任務,從而使代碼更易于理解和維護。