小编Pet*_* K.的帖子

模板对象的C++继承(G ++编译器)

#include <cstdlib>
#include <vector>
#include <iostream>

using namespace std;

class CFirstLevel {
 public:
    CFirstLevel (const string & _name): name (_name) {}
    // ...

 protected:

    string name;

};

template <typename T>
class CSecondLevel: public CFirstLevel {
 public:

    CSecondLevel (const string & _name): CFirstLevel (_name) {}

    virtual void PushBack (T) = 0;
    virtual void Print    (int I) {cout << data [I] << endl;}
    // ...

 protected:
    vector<T> data; 
};

template <typename A>
class CThirdLevel: public CSecondLevel<A> {
 public:
    CThirdLevel (const string & …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance templates

5
推荐指数
1
解决办法
296
查看次数

由一组多边形将平面细分为不重叠的区域

请参阅示例图片:

\n\n

在此输入图像描述

\n\n

平面上有一组多边形(凸多边形、非凸多边形,但不自相交)。多边形由顶点 \xe2\x80\x93 点(xy坐标,笛卡尔坐标系)定义。

\n\n

多边形示例集:

\n\n
    \n
  • 第一个多边形是 A、B、C。
  • \n
  • 第二个多边形是 D、E、F、G、H、I、J。
  • \n
  • 第三个多边形是 K、L、M、N。
  • \n
  • 第四个多边形是 O、P、Q。
  • \n
\n\n

多边形将平面划分为多个区域。多边形的某些部分可能是重叠的(例如第一和第二多边形、第二多边形和第三多边形)。这些重叠部分也是单独的区域。一些多边形可能在内部其他多边形内部(例如第四个多边形位于第二个多边形内部)。

\n\n

细分后的示例区域:蓝色、粉色、绿色、橙色、棕色和紫色。

\n\n

为简单起见,我想象该平面是一个具有常数x , y的矩形坐标的矩形。

\n\n

目标

\n\n

检测查询点所在的区域(蓝色、粉色、绿色等)。

\n\n

我正在寻找具有这些假设的平面细分的算法和数据结构。

\n

algorithm computational-geometry

5
推荐指数
1
解决办法
2219
查看次数

通过C中的索引数组对数组进行排序

可能重复:
就地阵列重新排序?

我有原始的未排序数组,其结构如下:

{D, A, B, E, C}
Run Code Online (Sandbox Code Playgroud)

和排序顺序的原始数组的索引数组:

{2, 3, 5, 1, 4} // Edited. Then I get {A, B, C, D, E}.
Run Code Online (Sandbox Code Playgroud)

我怎样才能通过索引数组简单地重新排列原始数组

我无法通过索引位置创建新数组和插入元素.

c algorithm

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