国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++ vector模板和deque的簡單應(yīng)用

這篇具有很好參考價值的文章主要介紹了C++ vector模板和deque的簡單應(yīng)用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

??vector模板和deque的簡單介紹:

??vector和deque的主要不同之處:

??今天我們用vector模板和deque模板實現(xiàn)以下簡單的功能:

代碼實現(xiàn):

??講解:


??vector模板和deque的簡單介紹:

vectordeque都是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.獲取平均分:

代碼實現(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)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C++中vector、list和deque的選擇:什么時候使用它們?

    C++中vector、list和deque的選擇:什么時候使用它們?

    前些天發(fā)現(xiàn)了一個巨牛的人工智能學習網(wǎng)站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到網(wǎng)站,這篇文章男女通用,看懂了就去分享給你的碼吧。 在C++中,vector、list和deque是STL(標準模板庫)提供的三種常見的容器。每種容器都有其特點和適用場景。本文將詳

    2024年02月13日
    瀏覽(20)
  • 【C++】deque的實現(xiàn)原理簡單介紹

    【C++】deque的實現(xiàn)原理簡單介紹

    前言 deque被稱為雙端隊列,它的出現(xiàn)主要是為了結(jié)合 vector 和 list 的優(yōu)點并減小它們的缺點,實際上 deque 確實結(jié)合了 vector 和 list 的優(yōu)點減小了它們的缺點,但是它的結(jié)合也讓它自己的優(yōu)點沒有原始的 vector 和 list 那么極致,導致 deque 變得很中庸,所以 deque 的應(yīng)用場景也并沒

    2024年02月01日
    瀏覽(22)
  • C++ 命名空間 & vector & 模板

    ? ? ? ? ?為了區(qū)分不同庫中相同名稱的函數(shù)、類、變量等,引入概念:命名空間。它可作為附加信息來幫助區(qū)分它們。使用了命名空間即定義了上下文,本質(zhì)上就是定義了一個范圍。? ? ? ? ? ? ? ? ? ?命名空間的定義使用? namespace ,后跟命名空間的名稱,如下所

    2024年02月09日
    瀏覽(22)
  • vector VS deque

    vector VS deque

    vector與動態(tài)數(shù)組相同,能夠在插入或刪除元素時自動調(diào)整自身大小,其存儲由容器自動處理, vector 通常占用多于靜態(tài)數(shù)組的空間,因為要分配更多的內(nèi)存以管理將來的增長,在每次插入元素的時,僅當額外內(nèi)存耗盡時觸發(fā)重新分配。 如上圖所示, vector 元素放置在連續(xù)存儲

    2024年02月11日
    瀏覽(18)
  • c++ 11標準模板(STL) std::vector (二)

    c++ 11標準模板(STL) std::vector (二)

    template ? ? class T, ? ? class Allocator = std::allocatorT class vector; (1) namespace pmr { ? ? template class T ? ? using vector = std::vectorT, std::pmr::polymorphic_allocatorT; } (2) (C++17 起) 1) std::vector 是封裝動態(tài)數(shù)組的順序容器。 2) std::pmr::vector 是使用多態(tài)分配器的模板別名。 元素相繼存儲,這意味著不

    2024年02月02日
    瀏覽(17)
  • C++學習筆記之四(標準庫、標準模板庫、vector類)

    C++學習筆記之四(標準庫、標準模板庫、vector類)

    C + + C++ C + + 標準庫指的是標準程序庫( S t a n d a r d Standard St an d a r d L i b a r a y Libaray L iba r a y ),它定義了十個大類,其中包括我們比較熟悉的 i o s t r e a m , s t r i n g iostream, string i os t re am , s t r in g 都是這十個大類的其中一個類中的一個小類。而 c + + c++ c + + 的標準模板庫也

    2024年02月07日
    瀏覽(21)
  • C++的vector類的簡單實現(xiàn)

    下面代碼是有關(guān)于 vector 的一些基礎(chǔ)實現(xiàn),和庫里的函數(shù)可能有較大的不同,但是基本可以實現(xiàn) vector 的很多功能。

    2024年02月11日
    瀏覽(17)
  • 【C++】vector模擬實現(xiàn)及其應(yīng)用

    【C++】vector模擬實現(xiàn)及其應(yīng)用

    vector是表示可變大小數(shù)組的序列容器。 就像數(shù)組一樣,vector也采用的連續(xù)存儲空間來存儲元素。也就是意味著可以采用下標對vector的元素進行訪問,和數(shù)組一樣高效。但是又不像數(shù)組,它的大小是可以動態(tài)改變的,而且它的大小會被容器自動處理。 本質(zhì)講,vector使用動態(tài)分

    2023年04月25日
    瀏覽(18)
  • Rust實戰(zhàn)(4):防御簡單C++ vector容器的越界問題例子分析

    這是一個C++的簡單vector容器的越界問題的小例子: func1.h func1.cpp 上面的代碼是刻意制造出來的,用一個測試代碼說明問題: 程序輸出: 這個代碼在Mac OS 系統(tǒng)上 make 后運行沒有崩潰,但是測試代碼里 std::string ret2 = sv.getElement(11); 實際上發(fā)生了數(shù)組越界。 在rust環(huán)境下創(chuàng)建一個

    2024年02月16日
    瀏覽(16)
  • 18 標準模板庫STL之deque

    基礎(chǔ)知識 ????????1、deque是一個雙端數(shù)組容器,可以同時在頭部和尾部添加、移除元素。deque與vector類似,也支持隨機訪問,但vector是一整段的連續(xù)內(nèi)存空間,而deque是一段一段的連續(xù)內(nèi)存空間。每一段連續(xù)內(nèi)存空間稱為一個deque塊,所有deque塊由一個map進行管理。 ????

    2023年04月22日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包