我正在学习使用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;
}
答案 0 :(得分:0)
&#39; *&#39;表示取消引用某些内容,即转到某个地址位于指针中的变量的地址。
int x=*p;
这意味着x
将拥有p
指向的内存地址的值。
x=&p;
这意味着x
将拥有p
所在的内存位置的地址。