账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    C++中std中的vector和string中的指针问题?
    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
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部