小编Tre*_*van的帖子

while(sline >> n >> c && c== ',') 背后的逻辑是什么?

vector<int> ParseLine (string line){
  istringstream sline(line);

  char c;
  int n;
  vector<int> row;
  while(sline >> n >> c && c == ",")
        row.push_back(n);

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

这是从文件中读取二维向量的函数之一。我想知道 while 循环背后的逻辑。

c++ loops vector while-loop

4
推荐指数
1
解决办法
94
查看次数

C++如何管理无法深度复制的资源

我正在创建一个管理不应“深度复制”的资源的类,也就是说,底层资源只能有一个实例,即使多个对象访问了同一资源。

但是,允许多个对象访问此资源也很危险,因为一个对象可能会超出范围并自毁,这也会破坏资源。在这种情况下,只定义一个移动构造函数(不允许浅拷贝)是否合理?或者有没有办法支持浅拷贝,让多个对象可以引用同一个资源,但是如果至少有一个对象仍然可以访问该资源,则该资源不会被销毁?

对于上下文,被管理的资源是一个 OpenGL 着色器,每个对象都有这个着色器的 ID 作为它的成员之一,它用来告诉 OpenGL 在必要时删除着色器。

c++ memory-management c++17

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

标签 统计

c++ ×2

c++17 ×1

loops ×1

memory-management ×1

vector ×1

while-loop ×1