小编JRb*_*ros的帖子

将智能指针与运算符“++”一起使用

如何更改下面的代码以使用 unique_ptr 而不是传统指针?

// vector::data
#include <iostream>
#include <vector>

int main ()
{
  std::vector<int> myvector (5);

  int* p = myvector.data();

  *p = 10;
  ++p;
  *p = 20;
  p[2] = 100;

  std::cout << "myvector contains:";
  for (unsigned i=0; i<myvector.size(); ++i)
    std::cout << ' ' << myvector[i];
  std::cout << '\n';

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我尝试了下面的代码,但我遇到了 E0349 没有运算符“++”与这些操作数匹配

  unique_ptr<int> p {myvector.data()};

  *p = 10;
  ++p; // <<< ERROR HERE >>>
  
Run Code Online (Sandbox Code Playgroud)

c++ smart-pointers

2
推荐指数
1
解决办法
135
查看次数

标签 统计

c++ ×1

smart-pointers ×1