c++学习

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

vector<int>name(1);name是vector

vector<int>name[1] = {1};name是数组,

 

随机数:#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<<;

int ival = 10;

int &val = ival;//引用
全局变量自动初始化0,new出来的都是随机的内容,在堆内存中,new int (2);值为2,new int[20];无法同时初始化.delete a;delete[ ] a;
设置默认参数时不能设置引用变量,必须从右往左全部设置,不能跳过。在声明里设置。

template<typename TTT>;void func(vector<TTT>ABC);

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;

static member function 无法声明为virtual function.

静态成员变量需要使用CLASS::i;定义它。

如果一个类A的成员有另一个类B,在A的构造函数中使用成员初始化列表方式去初始化B,除非B有默认构造函数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值