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