记录C++刷Leetcode

Leetcode刷题强烈建议用C++。一年没碰C++了,特在此记录一些常用语法。

1. vector容器的push_back方法。该函数将一个新的元素加到vector的最后面,位置为当前最后一个元素的下一个元素,新的元素的值是val的拷贝(或者是移动拷贝);vector.insert 给定的第一个参数,一般是begin() or end();遍历vector时,考虑使用begin()方法,参考链接. vector的find时,只能传递迭代器。https://blog.csdn.net/veghlreywg/article/details/80400382;

2. vector和set的sort函数,见参考用例

3. C++中数字字符,例如 '2' 是不容易转换为2的,可以使用 '2' - '0'来得到,同理,C++中这样的字符也可以参与计算,使用其ASCII码计算,48~57为0到9十个阿拉伯数字。获得 '2' 的ASCII码可通过 (int)'2'来获得。

4. c++中对vector和map的遍历多了个写法,使用auto和for.

map<int,string> student;
student.insert(pair<int,string>(2,"li"));
student.insert(pair<int,string>(1,"wang"));
student.insert(pair<int,string>(3,"sun"));
for(auto &v : student)
    cout<<v.first<<v.second<<endl;

// 也是一种遍历字典的方式
// map<int,string> :: iterator it=student.begin();
// for(;it!=student.end();++it)
//    cout<<it->first<<endl;


输出:1wang
2li
3sun

vector<int> w[3];
for (int i=5;i<8;++i)
   w[0].push_back(i);
for (auto& x :w[0])
    cout<<x<<'\t';

输出: 5	  6	  7	

5. vector转set的方法: 

vector<int> m;
set<int> mset(m.begin(),m.end());

 

展开阅读全文

没有更多推荐了,返回首页