use*_*099 2 c++ reference object
关于以下代码段:
struct Pair{
string name;
double val;
}
vector<Pair> pairs;
double& value(const string& s)
{
for (int i=0; i<pairs.size(); i++)
if (s==pairs[i].name) return pairs[i].val;
Pair p = {s,0};
pairs.push_back(p);
return pairs[pairs.size()-1].val;
}
Run Code Online (Sandbox Code Playgroud)
作者说
对于给定的参数字符串,value()查找相应的浮点对象(不是相应浮点对象的值); 然后它返回对它的引用.
"浮点对象"与其值之间的差异是什么?
该对象是包含该值的实际内存块.
因此,如果您获得引用,则可以替换其值,该值仍存储在原始向量中.
当然,如果您只是获取值(通过在没有&的情况下将返回值更改为double),您将无法更改向量中的实际值.
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |