C++笔记
参考网址
C++代码优化策略《C++性能优化指南》
- 用好的编译器并用好编译器
- 使用更好的算法
- 使用更好的库
- 减少内存分配和复制
- 移除计算
- 使用更好的数据结构
- 提高并发性
- 优化内存管理
阅读项目
语法笔记
-
Type alias, alias template (since C++11)
using identifier attr(optional) = type-id ;
-
#
在宏展开的时候会将后面的参数替换成字符串。 -
##
将前后两个的单词拼接在一起。 -
std::thread
void Command(); ... auto command_thread= std::thread(Command);
-
std::enable_shared_from_this 能让其一个对象(假设其名为 t ,且已被一个 std::shared_ptr 对象 pt 管理)安全地生成其他额外的 std::shared_ptr 实例(假设名为 pt1, pt2, … ) ,它们与 pt 共享对象 t 的所有权。
-
Writing generic code
#include <iostream> #include <manif/manif.h> using namespace manif; template <typename Derived> void print(const LieGroupBase<Derived>& g) { std::cout << "Group degrees of freedom : " << g::DoF << std::endl; std::cout << "Group underlying representation vector size : " << g::RepSize << std::endl; std::cout << "Current values : " << g << std::endl; } int main() { SE2d p_2d; print(p_2d); SE3d p_3d; print(p_3d); }
#include <iostream> #include <manif/manif.h> using namespace manif; template <typename DerivedA, typename DerivedB> void ominusSquaredNorm(const LieGroupBase<DerivedA>& g0, const LieGroupBase<DerivedB>& g1) { return (g0-g1).coeffs().squaredNorm(); }
-
std::make_shared
vsstd::shared_ptr
-
()
不可少auto chassis_executor = std::make_shared<roborts_decision::ChassisExecutor>();