reference c++ reference note # may cause error vector<int> vec[10] # right code vector<int> vec; for(int i=0;i<10;i++) vec.push_back(0); # may cause error vector<cv::Vec3f> vec; # right code cv::Mat mat(size,CV_8UC3); # or create a class A; vector<A> vec; algorithm find(): before sort search(): after sort Smart Pointers reference: raw, weak_ptr, shared_ptr, unique_ptrsmart pointers lessonraw: c style, out of date, not recommended now!auto_ptr: not recommended now!shared_ptr: use for shared objects, but cannot use in cycle share due to shared_ptr based on count. unique_ptr: use for monopolize objects, cannot share.weak_ptr: use to address the problem in shared_ptr //raw int *a; //shared_ptr and weak_ptr template<class T> struct Node { T value; std::weak_ptr<Node<T>> parent; std::shared_ptr<Node<T>> left; std::shared_ptr<Node<T>> right; }; //shared_ptr and unique_ptr foo_unique(std::make_unique<SomeKindofObject>(), thrower());//c++14 foo_shared(std::make_shared<SomeKindofObject>(), thrower());//c++11