很多时候,我看到术语值和元素被用于描述C++函数和数据结构。
这些术语的意思是一样的,还是元素是值的抽象概念?
特别地,http://www.cplusplus.com使用这两个术语。
谢谢。
对我来说,这些术语是不可互换的,但有时可以表示类似的东西。
举个例子:
std::vector<int> v = { 1, 3, 42 };
这个矢量有3个元素。每个元素都有一个值,第三个元素的值是42。但向量也包含三个值[注意"包含"one_answers"不包含"之间的区别]。
在我的词汇表中,一个值是"此时此刻的内容"。
如果我这样做:
v[2] += 6;
那么第三个元素仍然是与以前相同的第三个元件,但它的值现在是48
,而以前是42
。因此,元素保持不变,值发生变化。
当然,元素的"值"可以是指针(std::vector<int*>
),然后它也指向一个值[或没有任何值的NULL
]。引用也有一个引用和引用中的值。
术语'element'在标准文本中出现了1100次,似乎用于各种各样的概念,具体取决于文本的上下文。
更正式地说,在标准库中,类型element_type
指的是通过取消引用类似指针的对象(shared_ptr、unique_ptr、std::pointer_traits<>等)而产生的类型。
例如:
using ptr_type = std::shared_ptr<int>;
using pointee_type = ptr_type::element_type;
static_assert(std::is_same<pointee_type, int>::value, "");
类型value_type
是指存储在容器中的值。
注意,地图的value_type
是std::pair<const key_type, mapped_type>
并且在一个集合中value_type
是与key_type
相同的类型。