目錄
??vector模板和deque的簡單介紹:
??vector和deque的主要不同之處:
??今天我們用vector模板和deque模板實現(xiàn)以下簡單的功能:
代碼實現(xiàn):
??講解:
??vector模板和deque的簡單介紹:
vector和deque都是C++ STL(標準模板庫)中的容器模板,用于存儲和管理數(shù)據(jù)。它們都提供了可動態(tài)調(diào)整大小的數(shù)組,允許在任何位置插入和刪除元素。
??vector和deque的主要不同之處:
內(nèi)部數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)方式不同:vector使用連續(xù)的內(nèi)存塊來存儲元素,所以隨機訪問元素的速度很快,但在插入和刪除元素時需要移動后續(xù)元素的成本可能比較高。deque則采用了一種雙向隊列的數(shù)據(jù)結(jié)構(gòu),可以在兩端快速插入和刪除元素,但在隨機訪問元素時的效率較低。
關(guān)于這兩個模板的詳細介紹可以看以下兩篇文章:
C++ vector類成員函數(shù)介紹_我是一盤牛肉的博客-CSDN博客
?C++ deque類成員函數(shù)介紹_我是一盤牛肉的博客-CSDN博客
??今天我們用vector模板和deque模板實現(xiàn)以下簡單的功能:
??1.創(chuàng)建五名選手,放到vector中
??2.遍歷vector容器,取出來每一個選手,執(zhí)行for循環(huán),把10個評分存儲到deque容器中
??3.sort排序后去除最高分和最低分
??4.deque容器遍歷,累加總分
??5.獲取平均分:文章來源:http://www.zghlxwxcb.cn/news/detail-466562.html
代碼實現(xiàn):
#include<iostream>
#include<vector>
#include<deque>
#include<string>
#include<algorithm>
using namespace std;
class person
{
public:
person(string name, int age)
{
m_name = name;
m_age = age;
}
string m_name;
int m_age;
int score;
};
void test01()
{
//完成了創(chuàng)建選手
vector<person> persons;
for (int i = 0; i < 5; i++)
{
string name;
int age;
cout << "請輸入第"<<i+1<<"位參賽選手的姓名:";
cin >> name;
cout << "請輸入第" << i + 1 << "位參賽選手的年齡:";
cin >> age;
person* p = new person (name,age);
//開始錄入分數(shù)
deque<int>scroes;
for (int i = 0; i < 10; i++)
{
int nums = 0;
cout << "請輸入第" << i + 1 << "位裁判的分數(shù):";
cin >> nums;
scroes.push_front(nums);
}
//排序后去除最高分和最低分
sort(scroes.begin(), scroes.end());
scroes.pop_front();
scroes.pop_back();
//計算平均值
int sums = 0;
for (deque<int>::iterator t1 = scroes.begin(); t1 != scroes.end(); t1++)
{
sums = sums + *t1;
}
int arrage;
arrage = sums / 3;
p->score = arrage;
persons.push_back(*p);
}
for (vector<person>::iterator t = persons.begin(); t != persons.end(); t++)
{
cout << "選手姓名" << t->m_name << "選手年齡" << t->m_age << "選手分數(shù)" << t->score << endl;
}
}
int main()
{
test01();
}
??講解:
這段代碼使用C++創(chuàng)建了一個選手評分系統(tǒng)。首先,利用person
類創(chuàng)建了存儲選手信息的vector
向量persons
,并使用用戶輸入的信息初始化了person
對象并將其存儲到向量中。接下來,使用deque
雙端隊列記錄了每位參賽選手10次裁判打分,并且去掉最高分和最低分,計算得出該選手的平均分數(shù),將平均分數(shù)保存到對應(yīng)的person
對象的score
成員變量中。最后,使用迭代器遍歷persons
向量,輸出所有選手的姓名、年齡、成績。文章來源地址http://www.zghlxwxcb.cn/news/detail-466562.html
到了這里,關(guān)于C++ vector模板和deque的簡單應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!