1.NULL和nullptr的问题
C++里NULL就是零,如果要用void func(char*); func(NULL)会调用func(int);
nullptr的类型为nullptr_t,能够隐式的转换为任何指针,所以用空指针就尽可能的使用nullptr。
2.中序遍历
void path(TreeNode* node, TreeNode* &pt)
{
if(node == nullptr) return;
path(node->left, pt);
node->left = pt;
if(pt) pt->right = node;
pt = node;
path(node->right, pt);
}
3.C++STL中的find函数
vector:find(a.begin(), a.end(), value)
数组:find(a, a+length, val)
容器返回的是迭代器,数组返回的是指针。如果查找范围不存在,返回a.end()。(返回一个当前vector容器中末尾迭代器,若要访问末尾元素需要减一)
4.map
查找 map<string,int>::iterator iter1; iter1 = strMap.find(string("mchen"));cout<<iter1->first<<endl;
map:用法:https://www.cnblogs.com/omelet/p/6617362.html
for(int i = 0; i < numbers.size(); i++)
{
int sum = ++num[numbers[i]];
if(sum>numbers.size()/2) return numbers[i];
}
map可以直接运用,不用先插入值,调用后自动插入值。