C++11特性乱弹

C++的创始人Bjane Stroustrup说C++11感觉起来像一个新的语言。的确如此,这次不是炒冷饭,干货还是不少的。

auto自动类型检测

auto是C语言特傻的一茬。auto原来用来修饰一个局部变量,说明这个变量是栈上分配的,可自动销毁。但是局部变量默认就是auto类型的,几乎没有人会花那劲在前面主动加个auto,所以这个关键字算是浪费掉了。C++11赋予了这个关键字其他的意义,用来自动检测类型,以后我们就可以这么定义变量了:

·      auto x = 7;

·      auto y = 3.145;

·      auto z = Z{12};

auto在C++11程序中注定是要泛滥的。说不定不久的将来Java也要来一份,不过这都是互相抄的,人家Java早就有类似写法for(auto x : v) cout << x << ‘\n’;

lambda匿名表达式

这年头,似乎不支持lambda的语言和高上大就不沾边。这不,C++11中也整起来了,以后std::sort可以这样用了std::sort(v.begin(),v.end(), [](int a, int b) { return abs(a) < abs(b); });

C++11现在可以理直气壮地说哥不光OOP,连函数式编程的范儿都十足了,看不仅有lambda,还有variadic template,再看看咱的std::bind,啥都有。

static_assert编译时断言

还记得boost中的BOOST_STATIC_ASSERT吗,

#define BOOST_STATIC_ASSERT( B ) \

   typedef ::boost::static_assert_test<\

      sizeof(::boost::STATIC_ASSERTION_FAILURE<(bool)( B )>)>\

         BOOST_JOIN(boost_static_assert_typedef_,__COUNTER__)

编译时断言绝对是糟糕的hack,并且大多数断言失败的错误提示消息也莫名其妙。现在好了,C++11标准库中有了这玩意,我们再也不用关心是要通过模板特化还是通过其他方式来实现编译时断言了。真希望老大哥C语言这方面也能给力点,别老依赖蓝色小药丸。

static_assert还有几个兄弟,constexpr,alignof,都是好样的。

move semantics

用Google翻译的结果是“移动语义”,我倒觉得这像是割地赔款,把自己的东西移交给别人,叫“割让语义”更贴切。

虽说发明这玩意儿主要是用来避免临时变量的拷贝,但是随着使用泛滥,非临时变量肯定也不甘掉队,是不是来个std::move把自己伪装成临时变量,然后大家一起唱:“我把心交给你!”

最倒霉的还是指针爷爷,以后的时尚就是大家都装成临时变量传值了,指针爷爷只能在后台给大家擦皮鞋,因为就连它自有领域,大部分也被unique_ptr和shared_ptr替代了。

其实

其实语言就像是白米饭,要做到百吃不腻,不能啥料都往上放。扬州炒饭好吃吧,老干妈炒饭好吃吧,那也不能天天吃。

想知道更多C++11特性请参看BjaneStroustrup师傅写的C++11 faq。据说C++14也快来了,看来从Chrome开始飚版本以来,大家都喜欢跳数字博眼球了。

1. 用户与身体信息管理模块 用户信息管理: 注册登录:支持手机号 / 邮箱注册,密码加密存储,提供第三方快捷登录(模拟) 个人资料:记录基本信息(姓名、年龄、性别、身高、体重、职业) 健康目标:用户设置目标(如 “减重 5kg”“增肌”“维持健康”)及期望周期 身体状态跟踪: 体重记录:定期录入体重数据,生成体重变化曲线(折线图) 身体指标:记录 BMI(自动计算)、体脂率(可选)、基础代谢率(根据身高体重估算) 健康状况:用户可填写特殊情况(如糖尿病、过敏食物、素食偏好),系统据此调整推荐 2. 膳食记录与食物数据库模块 食物数据库: 基础信息:包含常见食物(如米饭、鸡蛋、牛肉)的名称、类别(主食 / 肉类 / 蔬菜等)、每份重量 营养成分:记录每 100g 食物的热量(kcal)、蛋白质、脂肪、碳水化合物、维生素、矿物质含量 数据库维护:管理员可添加新食物、更新营养数据,支持按名称 / 类别检索 膳食记录功能: 快速记录:用户选择食物、输入食用量(克 / 份),系统自动计算摄入的营养成分 餐次分类:按早餐 / 午餐 / 晚餐 / 加餐分类记录,支持上传餐食照片(可选) 批量操作:提供常见套餐模板(如 “三明治 + 牛奶”),一键添加到记录 历史记录:按日期查看过往膳食记录,支持编辑 / 删除错误记录 3. 营养分析模块 每日营养摄入分析: 核心指标计算:统计当日摄入的总热量、蛋白质 / 脂肪 / 碳水化合物占比(按每日推荐量对比) 微量营养素分析:检查维生素(如维生素 C、钙、铁)的摄入是否达标 平衡评估:生成 “营养平衡度” 评分(0-100 分),指出摄入过剩或不足的营养素 趋势分析: 周 / 月营养趋势:用折线图展示近 7 天 / 30 天的热量、三大营养素摄入变化 对比分析:将实际摄入与推荐量对比(如 “蛋白质摄入仅达到推荐量的 70%”) 目标达成率:针对健
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值