经调试发现,在一个for循环中,删除遍历中的vector元素,假设有如下声明:
std::vector<std::string> test;
std::vector<std::string>::iterator it;
用test.erase(it++),在删除最后一个元素后,it!=test.end()并不为true,
而改用it = test.erase(it)时,it!=test.end()为true,
虽然两种删除后,it指向的内容都一样。
搞不懂,是以铭记。
经调试发现,在一个for循环中,删除遍历中的vector元素,假设有如下声明:
std::vector<std::string> test;
std::vector<std::string>::iterator it;
用test.erase(it++),在删除最后一个元素后,it!=test.end()并不为true,
而改用it = test.erase(it)时,it!=test.end()为true,
虽然两种删除后,it指向的内容都一样。
搞不懂,是以铭记。
decltype关键字是C++11新标准引入的关键字,它和关键字auto的功能类似,也可以自动推导出给定表达式的类型,但它和auto的语法有些不同,这篇文章讲解了decltype的使用场景以及和auto不同的地方,同时也讲解了和auto结合使用的用法。
本文介绍了MySQL5.7 中常见的replace into 操作造成的主从auto_increment不一致现象,一旦触发了主从切换,业务的正常插入操作会触发主键冲突的报错提示。
string::erase();函数 原型
//////////////////////...
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M