相关疑难解决方法(0)

如何使用向量通过指针引用递归结构

我有结构,让我们称他们为sn,看起来像:

struct sn {
    string name;
    vector<sn*> connected_to;
};
Run Code Online (Sandbox Code Playgroud)

现在,假设我已经从0 - 9声明了connected_to向量; 我将sn A连接到sn B:

A.connected_to[0] = &B; 
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,我会以错误的方式解决这个问题.基本上我正在尝试做的是避免在我连接结构时复制结构...即:

struct sn {
    string name;
    vector<sn> connected_to;
};

// ... 

A.connected_to[0] = B; 
Run Code Online (Sandbox Code Playgroud)

这复制了吗?更基本的问题当然是我不明白向量,指针和引用是如何真正深入工作的.

c++ struct pointers vector

6
推荐指数
1
解决办法
1691
查看次数

std :: unique_ptr <>作为基于节点的结构中的指针

由于大多数人都喜欢谜题,我会用一个(拼写错误:)开始这个问题.想得到介绍,请注意,如果你不关心它,你可以跳过热身(JG问题)并阅读G问题,因为那是我的"真正的问题".

在审查潜在新员工提供的代码示例时,您偶然发现了一个链接列表,其实现使用了现代C++ 11特性,即std :: unique_ptr <>.

template <typename T> 
struct Node { 
   T data; 
   std::unique_ptr<Node<T>> next; 
   Node () {} 
   Node(const T& data_): data(data_) {} 
   Node(Node& other) { std::static_assert(false,"OH NOES"); } 
   Node& operator= (const Node& other) { 
     std::static_assert(false,"OH NOES"); 
     return *new Node(); 
   } 
public: 
   void addNext(const T& t) { 
      next.reset(new Node<T>(t)); 
   }
};

template<typename T>
class FwdList
{
    std::unique_ptr<Node<T>> head;
public:
    void add(const T& t)
    {
        if (head == nullptr)
            head.reset( new Node<T>(t));
        else {
            Node<T>* curr_node = head.get(); …
Run Code Online (Sandbox Code Playgroud)

c++ unique-ptr c++11

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

标签 统计

c++ ×2

c++11 ×1

pointers ×1

struct ×1

unique-ptr ×1

vector ×1