p = random_point(a,b)
#random_point() returns a tuple/named-tuple (x,y)
#0<x<a 0<y<b
if centers.validates(p):
centers.insert(p)
#centers is the data structure to store points
Run Code Online (Sandbox Code Playgroud)
在centers数据结构中,所有x和y坐标都存储在两个单独的排序(升序)列表中,一个用于x,另一个用于y.每个节点都x指向相应的y,反之亦然,这样它们可以单独排序并仍保持对属性:centers.get_x_of(y)和centers.get_y_of(x)
我在数据结构中需要的属性:
最初我想过使用simple Lists,并使用Binary search来获取插入任何新元素的索引.但我发现,使用像AVL或B树这样的自平衡树可以改善它.我可以让每两个树木x和y,与具有额外的指针,可以从X-树节点为y树节点指向每个节点.
但我不知道如何在这些树中构建随机访问功能.该函数centers.validate()尝试插入x&y,并对相邻元素运行一些检查,这需要随机访问:
def validate(p):
indices = get_index(p)
#returns a named tuple of indices to insert x and y, Eg: (3,7)
condition1 …Run Code Online (Sandbox Code Playgroud) #include <iostream>
#include <cmath>
using namespace std;
class Point
{
protected:
double x,y,z;
double mag;
public:
Point(double a=0.0, double b=0.0, double c=0.0) : x(a), y(b), z(c)
{
mag = sqrt((x*x)+(y*y)+(z*z));
}
friend ostream& operator<<(ostream& os, const Point& point);
};
ostream& operator<<(ostream& os, const Point& point)
{
os <<"("<<point.x<<", "<<point.y<<", "<<point.z<<") : "<<point.mag;
return os;
}
class ePlane : public Point
{
private:
Point origin;
public:
static double distance(Point a, Point b);
ePlane() : origin(0,0,0){}
};
double ePlane::distance(Point a, Point b) …Run Code Online (Sandbox Code Playgroud) 我刚刚学习在 Visual Studio 2017 中创建 MFC 应用程序。我已经创建了一个基于 MFC 对话框的应用程序的新默认项目。完成 MFC 应用程序向导的步骤后,visual studio 显示如下:
在这一点上,我没有更改任何代码或设置。
现在我如何获得对话框窗口,如下所示:
我试过重建解决方案,但它不起作用。
c++ ×2
c++11 ×1
inheritance ×1
list ×1
mfc ×1
protected ×1
python ×1
python-3.x ×1
tree ×1
visual-c++ ×1