- 28
- 0
C++中,char*和int[]等类型都有所局限,刚好我是从Python转到C++的,所以比较喜欢用std::string和std::vector然而,之后我又知道了指针问题。指针确实速度更快(我记得测过,大约快3倍),不过std::string和std::vector既然是动态的内存管理,就必然会引发一些问题。因此我要提以下几个问题:在std::vector元素类型是定长类型的情况下用下标、iter还是用指针?各自的优缺点是什么?std::vector<short> vec = {1, 3, 9, 2, 4, 3, 7, 3, 9, 5};for (int i=0; i<10; i++) { vec[i] *= 2;}std::vector<short> vec = {1, 3, 9, 2, 4, 3, 7, 3, 9, 5};std::vector<short>::iterator iter = vec.begin();while (iter != vec.end()) { *(iter++) *= 2;}std::vector<short> vec = {1, 3, 9, 2, 4, 3, 7, 3, 9, 5};short *p = &vec[0];for (int i=0; i<10; i++) { *(p++) *= 2;}针对std::vector<std::string>或std::vector<std::vector>等嵌套的动态内存管理的情形,我除了用[]访问还有什么更快且安全的办法?何时std::vector或std::string才会出现指针的问题?原理是什么?迭代器呢?我可能需要的回答:三种方法对于两种不同情况(1、2)各自的运行时间(时间复杂度等)、稳定性(会不会出意外情况)。
0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
