小编Tha*_*wen的帖子

如何使用项目的哈希值检查HashSet是否包含项目?

我想检查HashSet是否包含特定元素。我已经有了该int元素的哈希码,但是没有对该元素本身的引用。

是否可以在不迭代整个集合的情况下执行此操作?

c# hash hashcode hashset

3
推荐指数
1
解决办法
2127
查看次数

如何连接两个平行的2d多边形以创建无缝的3d网格?

假设我有两个多边形,一个位于另一个之上,如下所示:

两个多边形

我想将它们的顶点连接起来,以围绕其周边的三角形创建一个3d网格。这张图显示了您可以执行此操作的一种方式(橙色线代表三角形边缘):

两个多边形,用三角形连接

这类事情可以由人类直观地完成,但是在将其转换为有效的算法方面确实遇到了麻烦。

多边形存储为List<Vector2>。它们将总是简单的,并且可能是凹形的。

c# algorithm polygon

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

有没有办法使用基于范围的迭代器来迭代对指针列表值的引用?

所以,如果我有以下向量,其中包含几个指向int的指针:

std::vector<MyClass*> list;
Run Code Online (Sandbox Code Playgroud)

我可以稍后使用以下内容迭代它:

for (auto & (*item) : list)
{
    item.member = something;   //Goal is to require no dereferencing here
}
Run Code Online (Sandbox Code Playgroud)

使用对列表内容的值的引用比使用它们的指针稍微方便一点.

c++ pointers iterator reference auto

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

为什么使用std :: vector :: push_back的move变量会调用移动项的复制构造函数?

这里有一些代码无法编译,因为push_back试图在MoveOnlyClass中调用复制构造函数,该构造函数被删除:

class MoveOnlyClass
{
public:
    MoveOnlyClass() {};
    MoveOnlyClass& operator=(const MoveOnlyClass& other) = delete;
    MoveOnlyClass(const MoveOnlyClass& other) = delete;
};

int main()
{
    std::vector<MoveOnlyClass> vec;
    vec.push_back(std::move(MoveOnlyClass()));
}
Run Code Online (Sandbox Code Playgroud)

为什么会这样?当然,向量应该调用的唯一东西是移动构造函数.将对象移动到向量中的正确方法是什么?

c++ move vector

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

标签 统计

c# ×2

c++ ×2

algorithm ×1

auto ×1

hash ×1

hashcode ×1

hashset ×1

iterator ×1

move ×1

pointers ×1

polygon ×1

reference ×1

vector ×1