欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實(shí)現(xiàn)簡(jiǎn)單通訊錄管理系統(tǒng)

 更新時(shí)間:2022年02月27日 10:19:29   作者:xjfyt  
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)單通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C++實(shí)現(xiàn)簡(jiǎn)單的通訊錄管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

一、代碼

#include <iostream>
#include <string>
#include <cstring>
#include <fstream>
using namespace std;

//自定義一個(gè)聯(lián)系人結(jié)點(diǎn)類型
typedef struct node1
{
? ? string name; ? ? ? ?//姓名
? ? string tel; ? ? ? ? //手機(jī)號(hào)
? ? string email; ? ? ? //郵箱
? ? string address; ? ? //地址
? ? struct node1 *next; //指向下一節(jié)點(diǎn)的指針
} Node;

//自定義一個(gè)二叉排序樹(shù)結(jié)點(diǎn)類型
typedef struct node2
{
? ? Node data;
? ? struct node2 *lchild, *rchild;
} BSTNode;

//構(gòu)造結(jié)點(diǎn)通訊錄類
class Fnode
{
public:
? ? Fnode(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//構(gòu)造函數(shù),用于初始化一些變量
? ? ~Fnode(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //析構(gòu)函數(shù),用于程序結(jié)束之后對(duì)分配的內(nèi)存進(jìn)行清理
? ? void CreateInfo(); ? ? ? ? ? ? ? ? ? ? ?//錄入聯(lián)系人信息
? ? void InsertInfo(); ? ? ? ? ? ? ? ? ? ? ?//插入聯(lián)系人信息
? ? void FindInfoName(); ? ? ? ? ? ? ? ? ? ?//按姓名查找聯(lián)系人信息
? ? void FindInfoTel(); ? ? ? ? ? ? ? ? ? ? //按手機(jī)號(hào)查找聯(lián)系人信息
? ? void DeleteInfoTel(); ? ? ? ? ? ? ? ? ? //按手機(jī)號(hào)刪除聯(lián)系人信息
? ? void DispInfo(); ? ? ? ? ? ? ? ? ? ? ? ?//打印所有聯(lián)系人信息
? ? void DispInfoSort(); ? ? ? ? ? ? ? ? ? ?//按姓名排序輸出聯(lián)系人信息
? ? void SaveInfoToFile(); ? ? ? ? ? ? ? ? ?//保存聯(lián)系人信息至文件
? ? void ReadInfoFromFile(); ? ? ? ? ? ? ? ?//從文件讀取聯(lián)系人信息
? ? void Run(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? //功能函數(shù),包含菜單和相關(guān)函數(shù)的入口
? ? bool InsertBST(BSTNode *&bt, Node key); //插入二叉排序樹(shù)結(jié)點(diǎn),遞歸實(shí)現(xiàn)
? ? void CreateBST(); ? ? ? ? ? ? ? ? ? ? ? //由鏈表創(chuàng)建二叉排序樹(shù)
? ? void InOrder(BSTNode *b); ? ? ? ? ? ? ? //中序遍歷輸出二叉排序樹(shù),遞歸實(shí)現(xiàn)
? ? void DestroyBST(BSTNode *&b); ? ? ? ? ? //釋放二叉排序樹(shù),遞歸實(shí)現(xiàn)

private:
? ? bool opened; ? ? //用于表明文件是否被讀取過(guò),未讀為0,已讀為1
? ? Node *L, *p, *q; //定義通訊錄結(jié)點(diǎn)的頭指針和其他成員函數(shù)中可能用到的指針
? ? BSTNode *btree; ?//二叉排序樹(shù)頭節(jié)點(diǎn)
};

//構(gòu)造函數(shù),用于初始化一些變量
Fnode::Fnode()
{
? ? L = new Node;
? ? L->next = NULL;
? ? p = q = NULL;
? ? btree = NULL;
? ? opened = 0;
}

//析構(gòu)函數(shù),用于程序結(jié)束之后對(duì)分配的內(nèi)存進(jìn)行清理
Fnode::~Fnode()
{
? ? p = L;
? ? while (p != NULL)
? ? {
? ? ? ? delete p;
? ? ? ? p = p->next;
? ? }
}

void Fnode::CreateInfo() //創(chuàng)建結(jié)點(diǎn)
{
? ? int n;
? ? q = L, p = NULL;
? ? while (q->next != NULL)
? ? ? ? q = q->next;
? ? cout << "請(qǐng)輸入您要錄入的聯(lián)系人個(gè)數(shù):";
? ? cin >> n;
? ? for (int i = 0; i < n; i++)
? ? {
? ? ? ? p = new Node;
? ? ? ? cout << "請(qǐng)輸入第" << i + 1 << "位聯(lián)系人的姓名、手機(jī)號(hào)、郵箱和地址(用空格隔開(kāi)):" << endl;
? ? ? ? cin >> p->name >> p->tel >> p->email >> p->address;
? ? ? ? p->next = q->next;
? ? ? ? q->next = p;
? ? ? ? q = p;
? ? }
}

//插入聯(lián)系人信息
void Fnode::InsertInfo()
{
? ? q = L, p = NULL;
? ? while (q->next != NULL)
? ? ? ? q = q->next;
? ? p = new Node;
? ? cout << "請(qǐng)輸入您要插入的聯(lián)系人的姓名、手機(jī)號(hào)、郵箱和地址(用空格隔開(kāi)):" << endl;
? ? cin >> p->name >> p->tel >> p->email >> p->address;
? ? p->next = q->next;
? ? q->next = p;
? ? cout << "插入成功!" << endl;
}

//打印所有聯(lián)系人信息
void Fnode::DispInfo()
{
? ? p = L->next;
? ? if (p == NULL)
? ? ? ? cout << "數(shù)據(jù)為空,無(wú)法打印" << endl;
? ? else
? ? {
? ? ? ? cout << "姓名 ?\t\t"
? ? ? ? ? ? ?<< "手機(jī)號(hào) ? ? ? \t\t"
? ? ? ? ? ? ?<< "郵箱 ? ? ? ? ? ? \t\t"
? ? ? ? ? ? ?<< "地址" << endl;
? ? ? ? while (p != NULL)
? ? ? ? {
? ? ? ? ? ? cout << p->name << "\t\t" << p->tel << "\t\t" << p->email << "\t\t" << p->address << endl;
? ? ? ? ? ? p = p->next;
? ? ? ? }
? ? }
}

//按姓名查找聯(lián)系人信息
void Fnode::FindInfoName()
{
? ? string name;
? ? p = L->next;
? ? if (p == NULL)
? ? ? ? cout << "數(shù)據(jù)為空,無(wú)法查找" << endl;
? ? else
? ? {
? ? ? ? cout << "請(qǐng)輸入要查找的聯(lián)系人的姓名:";
? ? ? ? cin >> name;
? ? ? ? while (p->name != name)
? ? ? ? {
? ? ? ? ? ? p = p->next;
? ? ? ? ? ? if (p == NULL)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? cout << "沒(méi)有找到相關(guān)聯(lián)系人信息" << endl;
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? cout << "該聯(lián)系人的信息如下" << endl;
? ? ? ? cout << "姓名 ?\t\t"
? ? ? ? ? ? ?<< "手機(jī)號(hào) ? ? ? \t\t"
? ? ? ? ? ? ?<< "郵箱 ? ? ? ? ? ? \t\t"
? ? ? ? ? ? ?<< "地址" << endl;
? ? ? ? cout << p->name << "\t\t" << p->tel << "\t\t" << p->email << "\t\t" << p->address << endl;
? ? }
}

//按手機(jī)號(hào)查找聯(lián)系人信息
void Fnode::FindInfoTel()
{
? ? string tel;
? ? p = L->next;
? ? if (p == NULL)
? ? ? ? cout << "數(shù)據(jù)為空,無(wú)法查找" << endl;
? ? else
? ? {
? ? ? ? cout << "請(qǐng)輸入要查找的聯(lián)系人的手機(jī)號(hào):";
? ? ? ? cin >> tel;
? ? ? ? while (p->tel != tel)
? ? ? ? {
? ? ? ? ? ? p = p->next;
? ? ? ? ? ? if (p == NULL)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? cout << "沒(méi)有找到相關(guān)信息" << endl;
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? cout << "該聯(lián)系人的信息如下" << endl;
? ? ? ? cout << "姓名 ?\t\t"
? ? ? ? ? ? ?<< "手機(jī)號(hào) ? ? ? \t\t"
? ? ? ? ? ? ?<< "郵箱 ? ? ? ? ? ? \t\t"
? ? ? ? ? ? ?<< "地址" << endl;
? ? ? ? cout << p->name << "\t\t" << p->tel << "\t\t" << p->email << "\t\t" << p->address << endl;
? ? }
}

//按手機(jī)號(hào)刪除聯(lián)系人信息
void Fnode::DeleteInfoTel()
{
? ? string tel;
? ? p = L->next, q = L;
? ? if (p == NULL)
? ? ? ? cout << "數(shù)據(jù)為空,無(wú)法刪除" << endl;
? ? else
? ? {
? ? ? ? cout << "請(qǐng)輸入要?jiǎng)h除的聯(lián)系人的手機(jī)號(hào)" << endl;
? ? ? ? cin >> tel;
? ? ? ? while (p->tel != tel)
? ? ? ? {
? ? ? ? ? ? p = p->next;
? ? ? ? ? ? q = q->next;
? ? ? ? ? ? if (p == NULL)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? cout << "沒(méi)有找到相關(guān)信息" << endl;
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? q->next = p->next;
? ? ? ? delete p;
? ? ? ? cout << "手機(jī)號(hào)為" << tel << "的聯(lián)系人刪除成功!" << endl;
? ? }
}

//按姓名排序輸出聯(lián)系人信息
void Fnode::DispInfoSort()
{
? ? CreateBST();
? ? cout << "姓名 ?\t\t"
? ? ? ? ?<< "手機(jī)號(hào) ? ? ? \t\t"
? ? ? ? ?<< "郵箱 ? ? ? ? ? ? \t\t"
? ? ? ? ?<< "地址" << endl;
? ? InOrder(btree);
? ? DestroyBST(btree);
}

//保存聯(lián)系人信息至文件
void Fnode::SaveInfoToFile()
{
? ? p = L->next;
? ? if (p == NULL)
? ? ? ? cout << "數(shù)據(jù)為空,無(wú)法寫入!" << endl;
? ? else
? ? {
? ? ? ? ofstream outfile("./聯(lián)系人.csv");
? ? ? ? if (!outfile)
? ? ? ? {
? ? ? ? ? ? cout << "無(wú)法打開(kāi)文件!";
? ? ? ? ? ? return;
? ? ? ? }
? ? ? ? outfile << "姓名,"
? ? ? ? ? ? ? ? << "手機(jī)號(hào),"
? ? ? ? ? ? ? ? << "郵箱,"
? ? ? ? ? ? ? ? << "地址" << endl;
? ? ? ? while (p->next != NULL)
? ? ? ? {
? ? ? ? ? ? outfile << p->name << "," << p->tel << "," << p->email << "," << p->address << endl;
? ? ? ? ? ? p = p->next;
? ? ? ? }
? ? ? ? outfile << p->name << "," << p->tel << "," << p->email << "," << p->address;
? ? ? ? outfile.close();
? ? ? ? cout << "保存聯(lián)系人信息成功!請(qǐng)查看當(dāng)前目錄下的“聯(lián)系人.csv文件”" << endl;
? ? }
}

//從文件讀取聯(lián)系人信息
void Fnode::ReadInfoFromFile()
{
? ? ifstream infile("./聯(lián)系人.csv");
? ? if (!infile)
? ? {
? ? ? ? cout << "無(wú)法打開(kāi)文件!";
? ? ? ? return;
? ? }
? ? else if (opened == 1)
? ? {
? ? ? ? cout << "文件已經(jīng)被讀取,不能夠重復(fù)讀取!" << endl;
? ? ? ? return;
? ? }
? ? else
? ? {
? ? ? ? char str[500];
? ? ? ? q = L, p = NULL;
? ? ? ? while (q->next != NULL)
? ? ? ? ? ? q = q->next;
? ? ? ? infile.getline(str, sizeof(str));
? ? ? ? while (!infile.eof())
? ? ? ? {
? ? ? ? ? ? p = new Node;
? ? ? ? ? ? infile.getline(str, sizeof(str));
? ? ? ? ? ? p->name = strtok(str, ",");
? ? ? ? ? ? p->tel = strtok(NULL, ",");
? ? ? ? ? ? p->email = strtok(NULL, ",");
? ? ? ? ? ? p->address = strtok(NULL, ",");
? ? ? ? ? ? p->next = q->next;
? ? ? ? ? ? q->next = p;
? ? ? ? ? ? q = p;
? ? ? ? }
? ? ? ? infile.close();
? ? ? ? cout << "讀取數(shù)據(jù)成功!" << endl;
? ? ? ? opened = 1;
? ? }
}

//插入二叉排序樹(shù)結(jié)點(diǎn)
bool Fnode::InsertBST(BSTNode *&bt, Node key)
{
? ? if (bt == NULL)
? ? {
? ? ? ? bt = new BSTNode;
? ? ? ? bt->data = key;
? ? ? ? bt->lchild = bt->rchild = NULL;
? ? ? ? return true;
? ? }
? ? else if (key.name == bt->data.name)
? ? ? ? return false;
? ? else if (key.name < bt->data.name)
? ? ? ? return InsertBST(bt->lchild, key);
? ? else
? ? ? ? return InsertBST(bt->rchild, key);
}

//由鏈表創(chuàng)建二叉排序樹(shù)
void Fnode::CreateBST()
{
? ? btree = NULL;
? ? p = L->next;
? ? while (p != NULL)
? ? {
? ? ? ? InsertBST(btree, *p);
? ? ? ? p = p->next;
? ? }
}

//中序遍歷輸出二叉排序樹(shù)
void Fnode::InOrder(BSTNode *b)
{
? ? if (b != NULL)
? ? {
? ? ? ? InOrder(b->lchild);
? ? ? ? cout << b->data.name << "\t\t" << b->data.tel << "\t\t" << b->data.email << "\t\t" << b->data.address << endl;
? ? ? ? InOrder(b->rchild);
? ? }
}

//釋放二叉排序樹(shù)
void Fnode::DestroyBST(BSTNode *&b)
{
? ? if (b != NULL)
? ? {
? ? ? ? DestroyBST(b->lchild);
? ? ? ? DestroyBST(b->rchild);
? ? ? ? delete b;
? ? }
}

//菜單
void Fnode::Run()
{
? ? int item;
? ? do
? ? {
? ? ? ? cout << "\t\t\t==================通訊錄管理系統(tǒng)==================" << endl;
? ? ? ? cout << "\t\t\t# \t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #" << endl;
? ? ? ? cout << "\t\t\t# \t1)聯(lián)系人信息的逐條錄入。 ? ? ? ? ? ? ? ? #" << endl;
? ? ? ? cout << "\t\t\t# \t2)插入某個(gè)聯(lián)系人的信息。 ? ? ? ? ? ? ? ? #" << endl;
? ? ? ? cout << "\t\t\t# \t3)按手機(jī)號(hào)查找某個(gè)聯(lián)系人的信。 ? ? ? ? ? #" << endl;
? ? ? ? cout << "\t\t\t# \t4)按姓名查詢某個(gè)聯(lián)系人。 ? ? ? ? ? ? ? ? #" << endl;
? ? ? ? cout << "\t\t\t# \t5)按手機(jī)號(hào)刪除某個(gè)聯(lián)系人的信息 ? ? ? ? ? #" << endl;
? ? ? ? cout << "\t\t\t# \t6)所有聯(lián)系人信息的輸出顯示。 ? ? ? ? ? ? #" << endl;
? ? ? ? cout << "\t\t\t# \t7)所有聯(lián)系人按姓名排序并輸出顯示。 ? ? ? #" << endl;
? ? ? ? cout << "\t\t\t# \t8)所有聯(lián)系人信息的文件保存。 ? ? ? ? ? ? #" << endl;
? ? ? ? cout << "\t\t\t# \t9)所有聯(lián)系人信息的文件讀取。 ? ? ? ? ? ? #" << endl;
? ? ? ? cout << "\t\t\t# \t0)退出管理系統(tǒng)。 ? ? ? ? ? ? ? ? ? ? ? ? #" << endl;
? ? ? ? cout << "\t\t\t==================================================" << endl;
? ? ? ? cout << "請(qǐng)輸入相應(yīng)的命令,執(zhí)行相應(yīng)的功能:";
? ? ? ? cin >> item;
? ? ? ? system("cls");
? ? ? ? switch (item)
? ? ? ? {
? ? ? ? case 1:
? ? ? ? ? ? CreateInfo();
? ? ? ? ? ? getchar();
? ? ? ? ? ? cout << "\n按任意鍵返回主菜單" << endl;
? ? ? ? ? ? getchar();
? ? ? ? ? ? system("cls");
? ? ? ? ? ? break;
? ? ? ? case 2:
? ? ? ? ? ? InsertInfo();
? ? ? ? ? ? getchar();
? ? ? ? ? ? cout << "\n按任意鍵返回主菜單" << endl;
? ? ? ? ? ? getchar();
? ? ? ? ? ? system("cls");
? ? ? ? ? ? break;
? ? ? ? case 3:
? ? ? ? ? ? FindInfoTel();
? ? ? ? ? ? getchar();
? ? ? ? ? ? cout << "\n按任意鍵返回主菜單" << endl;
? ? ? ? ? ? getchar();
? ? ? ? ? ? system("cls");
? ? ? ? ? ? break;
? ? ? ? case 4:
? ? ? ? ? ? FindInfoName();
? ? ? ? ? ? getchar();
? ? ? ? ? ? cout << "\n按任意鍵返回主菜單" << endl;
? ? ? ? ? ? getchar();
? ? ? ? ? ? system("cls");
? ? ? ? ? ? break;
? ? ? ? case 5:
? ? ? ? ? ? DeleteInfoTel();
? ? ? ? ? ? getchar();
? ? ? ? ? ? cout << "\n按任意鍵返回主菜單" << endl;
? ? ? ? ? ? getchar();
? ? ? ? ? ? system("cls");
? ? ? ? ? ? break;
? ? ? ? case 6:
? ? ? ? ? ? DispInfo();
? ? ? ? ? ? getchar();
? ? ? ? ? ? cout << "\n按任意鍵返回主菜單" << endl;
? ? ? ? ? ? getchar();
? ? ? ? ? ? system("cls");
? ? ? ? ? ? break;
? ? ? ? case 7:
? ? ? ? ? ? DispInfoSort();
? ? ? ? ? ? getchar();
? ? ? ? ? ? cout << "\n按任意鍵返回主菜單" << endl;
? ? ? ? ? ? getchar();
? ? ? ? ? ? system("cls");
? ? ? ? ? ? break;
? ? ? ? case 8:
? ? ? ? ? ? SaveInfoToFile();
? ? ? ? ? ? getchar();
? ? ? ? ? ? cout << "\n按任意鍵返回主菜單" << endl;
? ? ? ? ? ? getchar();
? ? ? ? ? ? system("cls");
? ? ? ? ? ? break;
? ? ? ? case 9:
? ? ? ? ? ? ReadInfoFromFile();
? ? ? ? ? ? getchar();
? ? ? ? ? ? cout << "\n按任意鍵返回主菜單" << endl;
? ? ? ? ? ? getchar();
? ? ? ? ? ? system("cls");
? ? ? ? ? ? break;
? ? ? ? case 0:
? ? ? ? ? ? cout << "即將退出通訊錄管理系統(tǒng)......" << endl;
? ? ? ? ? ? cout << "謝謝您的使用!";
? ? ? ? ? ? exit(0);
? ? ? ? ? ? break;
? ? ? ? default:
? ? ? ? ? ? cout << "您輸入的指令錯(cuò)誤,請(qǐng)重新輸入!" << endl;
? ? ? ? ? ? getchar();
? ? ? ? ? ? cout << "\n按任意鍵返回主菜單" << endl;
? ? ? ? ? ? getchar();
? ? ? ? ? ? system("cls");
? ? ? ? }
? ? } while (item);
}

//主函數(shù)
int main()
{
? ? Fnode f;
? ? system("cls");
? ? f.Run();
? ? return 0;
}

二、功能展示

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語(yǔ)言通過(guò)gets和gets_s分別實(shí)現(xiàn)讀取含空格的字符串

    C語(yǔ)言通過(guò)gets和gets_s分別實(shí)現(xiàn)讀取含空格的字符串

    在遇到包含空格的字符串輸入時(shí)該如何讀取呢?如果使用scanf以%s格式去讀取輸入的字符串,遇到空格就讀取結(jié)束了,顯然這樣是讀取不了的。本文就將介紹兩個(gè)可以對(duì)含空格字符串讀取的庫(kù)函數(shù)------gets和gets_s函數(shù),感興趣的可以了解一下
    2021-12-12
  • 利用Matlab復(fù)刻兩款粒子愛(ài)心動(dòng)畫效果

    利用Matlab復(fù)刻兩款粒子愛(ài)心動(dòng)畫效果

    最近電視劇《點(diǎn)燃我,溫暖你》大火,蹭一下熱度,發(fā)一下MATLAB畫愛(ài)心的代碼,寫的比較隨意,大家可以自行調(diào)整粒子大小和顏色啥的
    2022-11-11
  • C++中智能指針最常用的shared_ptr和unique_ptr

    C++中智能指針最常用的shared_ptr和unique_ptr

    C++中的智能指針最常用的是shared_ptr和unique_ptr,C++新手最常問(wèn)的問(wèn)題是我從一個(gè)函數(shù)中拿到unique_ptr,但要轉(zhuǎn)成shared_ptr才能使用,要怎么轉(zhuǎn)換?同理是否能將shared_ptr轉(zhuǎn)換成unique_ptr,面對(duì)這些問(wèn)題,跟隨小編一起看看吧
    2022-08-08
  • C語(yǔ)言之結(jié)構(gòu)體定義 typedef struct 用法詳解和用法小結(jié)

    C語(yǔ)言之結(jié)構(gòu)體定義 typedef struct 用法詳解和用法小結(jié)

    這篇文章主要介紹了C語(yǔ)言的結(jié)構(gòu)體定義typedef struct用法詳解和用法小結(jié),typedef是類型定義,typedef struct 是為了使用這個(gè)結(jié)構(gòu)體方便,感興趣的同學(xué)可以參考閱讀
    2023-03-03
  • 利用C語(yǔ)言實(shí)現(xiàn)猜數(shù)字游戲

    利用C語(yǔ)言實(shí)現(xiàn)猜數(shù)字游戲

    這篇文章主要為大家詳細(xì)介紹了利用C語(yǔ)言實(shí)現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • C語(yǔ)言的strcpy函數(shù)你了解嗎

    C語(yǔ)言的strcpy函數(shù)你了解嗎

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的strcpy函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • VC中使用GDI+的配置方法概述

    VC中使用GDI+的配置方法概述

    這篇文章主要介紹了VC中使用GDI+的配置方法,需要的朋友可以參考下
    2014-07-07
  • C++設(shè)計(jì)模式之享元模式(Flyweight)

    C++設(shè)計(jì)模式之享元模式(Flyweight)

    這篇文章主要為大家詳細(xì)介紹了C++設(shè)計(jì)模式之享元模式Flyweight,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • C++代碼實(shí)現(xiàn)雙向鏈表

    C++代碼實(shí)現(xiàn)雙向鏈表

    這篇文章主要為大家詳細(xì)介紹了C++代碼實(shí)現(xiàn)雙向鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)查找最長(zhǎng)公共子序列

    C++動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)查找最長(zhǎng)公共子序列

    這篇文章主要介紹了C++動(dòng)態(tài)規(guī)劃最長(zhǎng)公共子序列,在動(dòng)態(tài)規(guī)劃中,你要將某個(gè)指標(biāo)最大化。在這個(gè)例子中,你要找出最長(zhǎng)公共子序列
    2022-06-06

最新評(píng)論