#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;class Stu {
private:public:};// 自定义 vector 类,重载 << 运算符方便添加元素
template <class T>
class myVector : public vector<T> {
public:myVector& operator<<(const T& val) {this->push_back(val);return *this;}
};// 选择登录还是注册功能
int choose() {int num;cout << "请选择登录或注册功能(登录输入 1,注册输入 2,退出输入 3)" << endl;cin >> num;return num;
}// 注册函数
bool registerAccount(myVector<string>& accounts, const string& username, const string& password) {for (size_t i = 0; i < accounts.size(); i += 2) {if (accounts[i] == username) {cout << "该账号已存在,请重新选择操作!" << endl;return false;}}accounts << username << password;cout << "注册成功!" << endl;return true;
}// 登录函数
bool loginAccount(const myVector<string>& accounts, const string& username, const string& password) {for (size_t i = 0; i < accounts.size(); i += 2) {if (accounts[i] == username && accounts[i + 1] == password) {cout << "登录成功!" << endl;return true;}}cout << "账号或密码错误,请重新选择操作!" << endl;return false;
}int main(int argc, const char** argv) {myVector<string> accounts;int choice;string username, password;while (true) {choice = choose();switch (choice) {case 1: {cout << "请输入用户名:";cin >> username;cout << "请输入密码:";cin >> password;loginAccount(accounts, username, password);break;}case 2: {cout << "请输入用户名:";cin >> username;cout << "请输入密码:";cin >> password;registerAccount(accounts, username, password);break;}case 3:cout << "退出系统!" << endl;return 0;default:cout << "无效的选择,请重新输入!" << endl;}}return 0;
}