Cnamespace namespace parser inline double getdoublechar strptr inline
命名空间 • 所以C++引入了namespace的概念,把一些标识符 以命名空间树结构的方式组织起来,使代码看起来 更优雅。 • namespace parser { inline double get_double(char **str_ptr); inline int get_int(char **str_ptr); } • namespace sight { inline Angle. Deg View. Angle(View. Width view_width); }
命名空间 • namespace { bool ret = Behavior. Executable: : Auto. Register<Behavior. D ribble. Executer>(); }
string • char * -> string • #include <string> • string s;
流输入输出 • iostream scanf/printf – cin>>XXX; cout<<XXX; • fstream fscanf/fprintf – ifstream fin(“input. txt”); – ofstream fout(“output. txt”); – fin>>XXX; fout<<XXX; • stringstream sscanf/sprintf – stringstream cmd_str; – cmd_str << “(dash ” << m. Command. Info. m. Power << “ ” << m. Command. Info. m. Angle << “)”;
模板 • 实践中需要各种各样的min函数 – int min(int a, int b) { return a>b ? b : a; } – double min(double a, double b) { return a>b ? b : a; } • 如果还需要其他类型的min怎么办? – char short long-long float long-double – Active. Behavior Angle. Deg
模板 • 类型抽象——_Tp类型 – template<typename _Tp> inline const _Tp& Min(const _Tp& x, const _Tp& y) { return std: : min(x, y); } • Min(2, 3); • Min(3. 0, 4. 0); • Min(act_bhv 1, act_bhv 2);
模板 • template<typename _Tp, std: : size_t _Nm, bool _Zero = false> class Array { _Tp _M_instance[_Nm ? _Nm : 1]; public: Array() { if (_Zero) { bzero(); } } _Tp & operator[](const std: : size_t & i) { return _M_instance[i]; } };
模板 • Array<int, 11> numbers; • Array<Player. State &, 11> teammates; • template<typename _Tp, std: : size_t _Nm, bool _Zero = false>
vector • #include <vector> • std: : vector<Player. State> players; • players[0]; //取指定位置的元素,[0]是 第一个元素 • players. size(); //players的长度 • players. push_back(player 1); //将一个元素 插入到vector的最后面 • insert()、clear()、erase()
list • #include <list> • std: : list<Active. Behavior> m. Active. Behavior. List; • Active. Behavior dribble; m. Active. Behavior. List. push_back(dribble); • m. Active. Behavior. List. sort(std: : greater<Active Behavior>()); • m. Active. Behavior. List. front(); • m. Active. Behavior. List. empty();
sort • #include<algorithm> • vector<int> a; sort(a. begin(), a. end()); • vector<person> c; sort(c. rbegin(), c. rend()); • int b[100]; sort(b, b+100); • list<double> d; sort(d. begin(), d. end()); d. sort(); //X //O
Q&A http: //cplus. com/reference/ wrighteagle-2 d-training+subscribe@googlegroups. com
- Slides: 27