初中信息学c语言组竞赛ppt,论C语言在信息学竞赛中的应用-Read.PPT
論C語(yǔ)言在信息學(xué)競(jìng)賽中的應(yīng)用-Read
論C++語(yǔ)言在信息學(xué)競(jìng)賽中的應(yīng)用 浙江省余姚中學(xué) 韓文弢 關(guān)于信息學(xué)競(jìng)賽 信息學(xué)競(jìng)賽一般要求在一定的時(shí)間內(nèi),理解并分析題意,設(shè)計(jì)符合給定時(shí)間和空間復(fù)雜度要求的算法,并在計(jì)算機(jī)上使用一定的程序設(shè)計(jì)語(yǔ)言正確地實(shí)現(xiàn)算法。 由于整個(gè)競(jìng)賽存在時(shí)間限制,因此所使用的程序設(shè)計(jì)語(yǔ)言能否正確、快速地實(shí)現(xiàn)算法對(duì)競(jìng)賽的成績(jī)影響頗大。 關(guān)于信息學(xué)競(jìng)賽 所以,編程復(fù)雜度成為和算法的時(shí)間以及空間復(fù)雜度同等重要的因素。 編程復(fù)雜度在很大程度上與所選用的程序設(shè)計(jì)語(yǔ)言有關(guān)。 一般信息學(xué)競(jìng)賽中比較常用的程序設(shè)計(jì)語(yǔ)言有BASIC、Pascal、C++、Java等。 信息學(xué)競(jìng)賽中常用語(yǔ)言的特點(diǎn) 中學(xué)信息學(xué)競(jìng)賽的語(yǔ)言現(xiàn)狀 BASIC語(yǔ)言正逐漸被淘汰。↘ Pascal語(yǔ)言使用較為廣泛,基本保持穩(wěn)定。→ C++語(yǔ)言憑借其本身所具有的高度的靈活性,以及它所帶的庫(kù)的強(qiáng)大功能,被越來(lái)越多的選手所使用。 ↗ 本文的目的和結(jié)構(gòu) 目的:使讀者在掌握Pascal語(yǔ)言的前提下,能盡快地掌握C++語(yǔ)言,并在此基礎(chǔ)上進(jìn)一步深入C++語(yǔ)言的高級(jí)應(yīng)用。 結(jié)構(gòu): 1 從Pascal到C++ 2 深入C++語(yǔ)言 3 STL簡(jiǎn)介 3 STL簡(jiǎn)介 閱讀本章的必要條件:了解C++面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)知識(shí)、了解一定的算法知識(shí) 本章的結(jié)構(gòu): 3.1 STL概述 3.2 迭代器 3.3 算法 3.4 容器 3.5 本章小結(jié) 3.1 STL概述 一般化編程 一般化編程(generic programming)的提出 void?swap(int&?x,?int&?y)?{????int?t?=?x;????x?=?y;????y?=?t;} 模板函數(shù) 模板函數(shù) templatevoid?swap(T&?x,?T&?y)?{????T?t?=?x;????x?=?y;????y?=?t;} 模板函數(shù)的調(diào)用 模板函數(shù)的調(diào)用 隱式調(diào)用 swap(x,?y); 顯式調(diào)用 swap(x,?y); 模板類(lèi) 模板類(lèi) templatestruct?c_array?{????typedef?T?value_type;????typedef?T&?reference;????typedef?const?T&?const_reference;????T?v[max];????operator?T*();????reference?operator?[](size_t?i);????const_reference?operator?[](size_t?i)?const;????size_t?size()?const;}; 模板類(lèi)的使用 模板類(lèi)的使用 c_array?a; c_array?b; c_array,?10>?c; STL概述 STL就是建立在模板函數(shù)和模板類(lèi)基礎(chǔ)之上的功能強(qiáng)大的庫(kù) 模板函數(shù)可以實(shí)現(xiàn)一般化的常用算法(如統(tǒng)計(jì)、排序、查找等) 模板類(lèi)可以實(shí)現(xiàn)支持幾乎所有類(lèi)型的容器,用來(lái)實(shí)現(xiàn)常用的數(shù)據(jù)結(jié)構(gòu)(如鏈表、棧、隊(duì)列、平衡二叉樹(shù)等) STL頭文件一覽 3.2 迭代器 迭代器的定義和種類(lèi) 迭代器(iterator)實(shí)際上是一種一般化的指針類(lèi)型,是對(duì)指針類(lèi)型的抽象。 根據(jù)所支持操作的不同,迭代器被分為五大類(lèi): 輸出迭代器(input iterator) 輸入迭代器(output iterator) 前向迭代器(forward iterator) 雙向迭代器(bidirectional iterator) 隨機(jī)迭代器(random access iterator) 各種迭代器的功能 更多關(guān)于迭代器的信息 指針類(lèi)型就是一種特殊的隨機(jī)迭代器類(lèi)型。 對(duì)于一般的迭代器,這些功能都是通過(guò)操作符重載來(lái)實(shí)現(xiàn)的。 更多關(guān)于迭代器的信息 各種迭代器類(lèi)型之間的關(guān)系: 迭代器的作用 訪問(wèn)元素 算法與容器之間的紐帶 模板類(lèi)pair templatestruct?pair?{????typedef?T1?first_type;????typedef?T2?second_type;????T1?first;????T2?second;????pair()?:?first(T1()),?second(T2())?{?}????pair(const?T1&?x,?const?T2&?y)?????:?first(x),?second(y)?{?}????template????pair(const?pair&?p)?????:?first(p.f
總結(jié)
以上是生活随笔為你收集整理的初中信息学c语言组竞赛ppt,论C语言在信息学竞赛中的应用-Read.PPT的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 马尔科夫状态转移矩阵
- 下一篇: 毕设树莓派小车