Ejemplo n.º 1
0
int tds_vec_insert(tds_vec *vec, size_t idx, tds_elem *val)
{
  if(tds_vec_resize(vec, vec->n+1))
      return 1;
  if(vec->n-idx-1 > 0)
    memmove(vec->data+idx+1, vec->data+idx, sizeof(tds_elem)*(vec->n-idx-1));
  vec->data[idx] = *val;
  return 0;
}
Ejemplo n.º 2
0
int tds_vec_set(tds_vec *vec, size_t idx, tds_elem *val)
{
  if(idx >= vec->n) {
    if(tds_vec_resize(vec, idx+1))
      return 1;
  }
  tds_elem_free_content(&vec->data[idx]);
  vec->data[idx] = *val;
  return 0;
}
Ejemplo n.º 3
0
int tds_vec_remove(tds_vec *vec, size_t idx)
{
  if(idx >= vec->n)
    return 0;
  tds_elem_free_content(&vec->data[idx]);
  if(vec->n-idx-1 > 0)
    memmove(vec->data+idx, vec->data+idx+1, sizeof(tds_elem)*(vec->n-idx-1));
  tds_vec_resize(vec, vec->n-1);
  return 0;
}