Vector
一维
vector<int> a(10, 1);
a.push_back(2);
a.size() ;
//删除 a.erase(itbgin,itend);
二维
vector<vector<int> > v(3);
for(int i = 0;i < v.size(); ++i)
for(int j = 0; j < 4; ++j)
v[i].push_back(j);
rownum=v.size();
colnum=v[0].size();
vector 去重
set<int>s(vec.begin(), vec.end());
vec.assign(s.begin(), s.end());
String
反转:reverse(str.begin(), str.end());
切片:pre=strs.substr(0,j);
查找:strs.find(pre)
- 找到 返回第一次出现位置
- 找不到 返回string::npos
插入:str.insert(pos,inserStr)
初始化:string temp(n,‘0’);
删除:str.erase(remove(str.begin(),str.end(),‘a’),str.end()); //在容器中, 删除[begin,end)之间的所有值等于’a’的值.
split 函数实现
void split(string &s, vector<string> &list1)
{
istringstream tmp_string(s);
string ss;
while (getline(tmp_string, ss, ','))
{
list1.push_back(ss);
}
}
stack
push() pop() top()
queue
push() pop() front() back()
树
二叉树标准定义
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
新建结点:TreeNode *roots=new TreeNode(val)
字符串
定义 char *str;
字符串结尾 ‘\0’
Stringstream
int 与string 转换
Stringsteam ss;
string st;
int t;
ss.clear();
ss<<st;
ss>>t;
to_string
stoi stol stoll
转换进制
ss<<oct<<a; //10进制转成八进制读入流中
ss<<hex<<a; //10进制转成十六进制读入流中
二进制处理
bitset<位数> a(string or int待处理数字)
1的位数:a.count()
判断double是否相等
bool equal(double num1,double num2)
{
if((num1-num2>-0.00000001)&&(num1-num2)<0.00000001)
return true;
else return false;
}