c++学习

来源:互联网 发布:java正则表达式教程 编辑:程序博客网 时间:2024/06/07 02:58

vector初始化可定义一个数组a[2];然后vector<string>v(a,a+2);初始化。也可以创建一个空的vector<string>v;根据需要往后面插入元素,vector class自动管理内存。

随机数:#include <cstdlib> srand();rand();返回0-int的值。
文件操作#include <fstream> ofstream outfile("1.txt",ios_base::app);追加打开.ifstream infile("",ios_base::in|ios_base::app); *.seekg(0);移到开头。
打印错误专用cerr<<;
全局变量自动初始化0,new出来的都是随机的内容,new int (2);值为2,new int[20];无法同时初始化.delete a;delete[ ] a;
设置默认参数时不能设置引用变量,必须从右往左全部设置,不能跳过。
iterator定义:iterator <vector,string> iter;或者vector <string> vec; vector <string>::iterator iter = vec.begain();
list初始化:list <string> lister(array,array+size);空容器:list<string>list;特定大小容器:list<string> lister(size)/*有默认值*/;产生特定大小和初始值:list<string> lister(10,"12");复制:list <int> lister(liser1); 不支持lister+5指针偏移.
.push_back();pop_back();push_front();pop_front();insert(pos,value);返回插入元素指针insert(pos,count,value),insert(pos,iterator,inerator+size);erase(interator);erase(interator,interator+size);max_element(interator,interator+size);copy(iterator_b,iterator_e,iterator);
vector可以函数返回,是一个对象。
#include <map>  map<string,int> map_v; map_v["asdf"] = 1;/*设置key为" " 的value为1*/,调用map_v["x"],如果里面没有x就会加入进去,默认value.
map<string,int>::iterator map_iter = map_v.begain();map_iter->first(key)second(value);
查看key是否在里面(1)map_v["a"];没有就会加入(2) map_v.find("a");返回一个iterator,没有就返回map_v.end();(3)words.count("1");返回个数
set.insert(value(int/string...));或者set.insert(v.begain(),v.end());
取代赋值运算符的iterator inserter.不支持array.   back_inserter(vec);inserter(vec,vec.end()/*插入起点*/);front_inserter(vec);只支持list and deque.
iostream iterator.istream_iterator<string> i_s(cin);  istream_iterator<string> end_file;/*未指定对象,表示结束符*/copy(cin,end_file,dest_vec);ostream iterator<string> o_s(cout," ");每个对象自动用" "隔开.
CLASS:
constructor A a;A(1,2);A a(1);A a = 1;A a();无法使用。使用默认值最好。一个就搞定了。
初始化一个类A b(a);复制a到b,指针是同一个.
CLASS::CLASS(int i,int j):lenth(12){...};
const member func声明和定义都加const 在参数列表之后。传const CLASS &a参数进去的时候,调用a的成语函数必须都是const函数.特殊时可用mutable ;
在class主体定义的函数自动视为inline。
构造函数无需指定返回类型.
静态成员直接就分配空间,可以使用CLASS::(static)member()调用,也可以实例化.member()调用,静态变量使用前需初始化。静态成员函数中不能有非静态成员,声明是加上static,定义时无需,static 成员变量所以实例共用。
定义iterator class的运算符时,声明: bool operator==(是否需要传入class比较) const;定义在里面把成员拿来比较啥的。
typedef int sb;


1 0
原创粉丝点击