目的*,&符号behide数据类型?

时间:2017-08-20 06:51:53

标签: pointers graph

我正在学习使用c ++实现图形。我偶然看到了以下代码。任何人都可以解释符号的功能是什么*和&隐藏数据类型“vertex”和“string”?

#include <iostream>
#include <vector>
#include <map>
#include <string>

using namespace std;

struct vertex {
  typedef pair<int, vertex*> ve;
  vector <ve> adj; //cost of edge, distination to vertex
  string name;
  vertex (string s) : name(s) {}
};

class gragh
{
public:
  typedef map<string, vertex *> vmap;
  vmap work;
  void addvertex (const string&);
  void addedge (const string& from, const string&, double cost);
};

void gragh::addvertex (const string &name)
{
  vmap::iterator itr = work.find(name);
  if (itr == work.end())
  {
    vertex *v;
    v = new vertex(name);
    work[name] = v;
    return;
  }
  cout << "Vertex alreay exist";
 }

int main()
{
  return 0;
}

1 个答案:

答案 0 :(得分:0)

&#39; *&#39;表示取消引用某些内容,即转到某个地址位于指针中的变量的地址。

int x=*p;

这意味着x将拥有p指向的内存地址的值。

x=&p;

这意味着x将拥有p所在的内存位置的地址。