本文整理汇总了C++中array::add方法的典型用法代码示例。如果您正苦于以下问题:C++ array::add方法的具体用法?C++ array::add怎么用?C++ array::add使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类array
的用法示例。
在下文中一共展示了array::add方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadEnvPoints
void CMapLayers::LoadEnvPoints(const CLayers *pLayers, array<CEnvPoint>& lEnvPoints)
{
lEnvPoints.clear();
// get envelope points
CEnvPoint *pPoints = 0x0;
{
int Start, Num;
pLayers->Map()->GetType(MAPITEMTYPE_ENVPOINTS, &Start, &Num);
if(!Num)
return;
pPoints = (CEnvPoint *)pLayers->Map()->GetItem(Start, 0, 0);
}
// get envelopes
int Start, Num;
pLayers->Map()->GetType(MAPITEMTYPE_ENVELOPE, &Start, &Num);
if(!Num)
return;
for(int env = 0; env < Num; env++)
{
CMapItemEnvelope *pItem = (CMapItemEnvelope *)pLayers->Map()->GetItem(Start+env, 0, 0);
if(pItem->m_Version >= 3)
{
for(int i = 0; i < pItem->m_NumPoints; i++)
lEnvPoints.add(pPoints[i + pItem->m_StartPoint]);
}
else
{
// backwards compatibility
for(int i = 0; i < pItem->m_NumPoints; i++)
{
// convert CEnvPoint_v1 -> CEnvPoint
CEnvPoint_v1 *pEnvPoint_v1 = &((CEnvPoint_v1 *)pPoints)[i + pItem->m_StartPoint];
CEnvPoint p;
p.m_Time = pEnvPoint_v1->m_Time;
p.m_Curvetype = pEnvPoint_v1->m_Curvetype;
for(int c = 0; c < pItem->m_Channels; c++)
{
p.m_aValues[c] = pEnvPoint_v1->m_aValues[c];
p.m_aInTangentdx[c] = 0;
p.m_aInTangentdy[c] = 0;
p.m_aOutTangentdx[c] = 0;
p.m_aOutTangentdy[c] = 0;
}
lEnvPoints.add(p);
}
}
}
}
示例2: add
/// Add `v` to the entry `k`. It returns in `is_new` true if the
/// entry `k` did not exist in the hash. In `id` is returned the
/// final position of `k` in the hash array.
void add(const Key& k, uint64_t v, bool* is_new, size_t* id) {
unsigned int carry_shift = 0;
bool* is_new_ptr = is_new;
size_t* id_ptr = id;
bool is_new_void = false;
size_t id_void = false;
while(!ary_->add(k, v, &carry_shift, is_new_ptr, id_ptr)) {
handle_full_ary();
v &= ~(uint64_t)0 << carry_shift;
// If carry_shift == 0, failed to allocate the first field for
// key, hence status of is_new and value for id are not
// determined yet. On the other hand, if carry_shift > 0, we
// failed while adding extra field for large key, so the status
// of is_new and value of id are known. We do not update them in future
// calls.
if(carry_shift) {
is_new_ptr = &is_new_void;
id_ptr = &id_void;
}
}
}
示例3: addarray
void addarray (array<string>& dest, const type* const strings, const int numberofstrings)
{
for (int i = 0; i < numberofstrings; ++i)
dest.add (strings [i]);
}