答案 0 :(得分:5)
对我而言,这些术语不可互换,但有时可能代表类似的事情。
以例如:
std::vector<int> v = { 1, 3, 42 };
此向量有3个元素。每个元素都有一个值,第三个元素的值是42.但是向量还包含三个值[注意&#34;包含&#34;之间的差异,而不是&#34;有&#34;]。
在我的词汇表中,值是&#34;内容只是这个momemnt&#34;。
如果我这样做:
v[2] += 6;
然后第三个元素仍然是与之前相同的第三个元素,但它的值现在为48
,之前为42
。因此,元素保持不变,值会发生变化。
当然,&#34;价值&#34;一个元素可以是一个指针(std::vector<int*>
),然后它指向一个值[或NULL
,它没有任何值]。参考文献中还有一名反叛者和一名参赛者。
答案 1 :(得分:2)
术语“元素”在标准文本中看起来像1100次,并且似乎用于各种各样的概念,具体取决于文本的上下文。
更正式地在标准库中,类型element_type
指的是通过解除引用类似指针的对象(shared_ptr,unique_ptr,std :: pointer_traits&lt;&gt;等)而产生的类型。
e.g:
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
的类型相同。