之前学了c++,很多的东西都忘了,现在重新写一下。
一、结构体。
struct Point
{
int x,y;
Point(int x=0, int y=0):x(x),y(y){}
};
结构体Point中定义了一个函数,函数名也叫Point,但是没有返回值,这样的函数称为构造函数。构造函数是在声明变量四调用的,例如Point a,b(1,2);分别调用了Point()和Point(1,2),即如果没有指明这两个参数的值,就按0处理。“:x(x),y(y)”是一个简单的写法,。也可以写成:Point(int x=0,int y=0){ this->x=x;this->y=y;}.
重写+,Point operator + (const Point&A,const Point& B)
{
return Point(A.x+B.x,A.y+B.y);
}
重写输出<<,ostream& operator << (ostream &out,const Point&p)
{
out << "("<<p.x<<","<<p.y<<")";
return out;
}
二、模板
template<typename T>
T sum(T* begin,T*end)
{
T* p =begin;
T ans =0;
for(T* p=begin;p!=end;p++)
ans = ans +*p;
return ans;
}
三、STL
1.不定长数组:vector
vector是一个模板类,所以需要用vector<int>a,或者vector<double>b这样的方式来声明一个vector,可以用a.size()读取它的大小,a.resize()改变大小,a.push_back()向尾部添加元素,a.pop_back()删除最后一个元素。
2.集合:set
set就是数学上的集合,每个元素最多只出现一次,a.insert(b),加入数据。
3.映射:map
map就是从键(key)到值(value)的映射。map<string,int> a;可以用a[zhao]=96;这种方法加入数据。