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 循环背后的逻辑。
我正在创建一个管理不应“深度复制”的资源的类,也就是说,底层资源只能有一个实例,即使多个对象访问了同一资源。
但是,允许多个对象访问此资源也很危险,因为一个对象可能会超出范围并自毁,这也会破坏资源。在这种情况下,只定义一个移动构造函数(不允许浅拷贝)是否合理?或者有没有办法支持浅拷贝,让多个对象可以引用同一个资源,但是如果至少有一个对象仍然可以访问该资源,则该资源不会被销毁?
对于上下文,被管理的资源是一个 OpenGL 着色器,每个对象都有这个着色器的 ID 作为它的成员之一,它用来告诉 OpenGL 在必要时删除着色器。