相关疑难解决方法(0)

什么是std :: move(),什么时候应该使用?

  1. 它是什么?
  2. 它有什么作用?
  3. 什么时候应该使用?

赞赏良好的链接.

c++ c++-faq move-semantics c++11 stdmove

581
推荐指数
6
解决办法
24万
查看次数

移动向量会使迭代器失效吗?

如果我有一个迭代到载体a,然后我布展构建体或移动指派矢量ba,是否仍迭代器指向同一元件(现在矢量b)?这就是我在代码中的意思:

#include <vector>
#include <iostream>

int main(int argc, char *argv[])
{
    std::vector<int>::iterator a_iter;
    std::vector<int> b;
    {
        std::vector<int> a{1, 2, 3, 4, 5};
        a_iter = a.begin() + 2;
        b = std::move(a);
    }
    std::cout << *a_iter << std::endl; // Is a_iter valid here?
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

是否a_iter仍然有效的,因为a已移入b,或者是通过招无效的迭代器?作为参考,std::vector::swap 不会使迭代器无效.

c++ iterator c++11

66
推荐指数
3
解决办法
3834
查看次数

标签 统计

c++ ×2

c++11 ×2

c++-faq ×1

iterator ×1

move-semantics ×1

stdmove ×1