Next: , Previous: , Up: The Index Library   [Index]


13.4.5 Data Type Specific Index Functions

i_a_<type-name>

void i_a_<type-name>(index i, integer k, <type> d);

inserts data of the <type> data type and d value in the k position in the i index if i index does not map k, does nothing otherwise

i_b_<type-name>

<type> i_b_<type-name>(index i, integer k, <type> d);

is the data in the k position in the i index, as replaced by the function with a reference to the d data (the types of the replaced and replacing data do not have to match, the function applies only to data types allowing for multiple references)

See Referable Objects.

i_c_<type-name>

<type> i_c_<type-name>(index i, integer k, <type> d);

is the data in the k position in the i index, as inserted or replaced by the function with a reference to the d data (the types of the replaced and replacing data do not have to match, the function applies only to data types allowing for multiple references)

See Referable Objects.

i_d_<type-name>

void i_d_<type-name>(index i, integer k, <type> d);

inserts a reference to the d data in the k position in the i index if i does not map k, does nothing otherwise (the function applies only to data types allowing for multiple references)

See Referable Objects.

i_e_<type-name>

<type> i_e_<type-name>(<type> &d, index i, integer k);

is the data in the k position in the i index, sets d as the same data (assumed of the <type> data type) and removes k from r

i_ec_<type-name>

<type> i_ec_<type-name>(<type> &d, index i, integer k);

is the data in the k position in the i index, sets d as the same data and removes k from r. Like the i_e_* functions, with some implicit conversions performed for mismatching types.

i_f_<type-name>

<type> i_f_<type-name>(index i, integer k, <type> d);

is the data in the k position in the i index, as inserted or replaced by the function with data of the <type> data type and d value (the types of the replaced and replacing data do not have to match)

See Copyable Non Referable Objects.

i_g_<type-name>

<type> i_g_<type-name>(<type> &d, index i, integer k);

is the data in the k position in the i index, sets d as the same (data is linked if allowed, copied otherwise, data assumed of the <type> data type)

i_gc_<type-name>

<type> i_gc_<type-name>(<type> &d, index i, integer k);

is the data in the k position in the i index, sets d as the same. Like the i_g_* functions, with some implicit conversions performed for mismatching types. Data is linked if type allowed, copied otherwise.

i_j_<type-name>

integer i_j_<type-name>(<type> &d, index i, integer k);

is 0 if the i index does not map k or if the data in the k position is not of the <type> data type, non zero otherwise. Sets d as the data in the k position for the latter case (links data if the data type allows, copies it otherwise).

i_k_<type-name>

integer i_k_<type-name>(<type> &d, index i, integer k);

is 0 if the i index does map k and if the data in the k position is not of the <type> data type, non zero otherwise. Inserts data of the <type> data type and some <type> data type specific default value in the k position if i does not map k. Sets d to refer the data in the k position if the data is of the <type> data type.

Equivalent to:

integer
i_k_<type-name>(<type> &d, index i, integer k)
{
    if (!i_key(r, s)) {
        i_n_<type-name>(r, s);
    }

    return i_j_<type-name>(d, r, s);
}

i_l_<type-name>

<type> i_l_<type-name>(index i, integer k, <type> d);

is d, inserts a reference to the d data in the k position in the i index (the function applies only to data types allowing for multiple references)

See Referable Objects.

i_n_<type-name>

<type> i_n_<type-name>(index i, integer k);

is (new) data of the <type> data type and some <type> data type specific default value in the k position in the i index (data is created by the function call)

i_o_<type-name>

integer i_o_<type-name>(<type> &d, index i, integer k);

is 0 if the i index does not map k or if the data in the k position is not of the <type> data type, non zero otherwise. Sets d as the data in the k position for the latter case and removes it from the index.

i_p_<type-name>

<type> i_p_<type-name>(index i, integer k, <type> d);

is the <type> data in the k position in the i index, a function inserted copy of d

See Copyable Non Referable Objects.

i_q_<type-name>

<type> i_q_<type-name>(index i, integer k);

is the data in the k position in the i index (assumed of the <type> data type)

i_qc_<type-name>

<type> i_qc_<type-name>(index i, integer k);

is the data in the k position in the i index. Like the i_q_* functions, with some implicit conversions performed for mismatching types.

i_r_<type-name>

<type> i_r_<type-name>(index i, integer k, <type> d);

is the data in the k position in the i index, as replaced by the function with data of the <type> data type and d value (the types of the replaced and replacing data do not have to match)

See Copyable Non Referable Objects.

i_s_<type-name>

integer i_s_<type-name>(index i, integer k);

is non zero if the data in the k position in the i index is of the <type> data type, zero if it is not

i_v_<type-name>

<type> i_v_<type-name>(index i, integer k);

is (new) data of the <type> data type in the k position in the i index (data is created by the function call if i does not map k and set to some <type> data type specific default value)

i_x_<type-name>

<type> i_x_<type-name>(index i, integer k);

is the data in the k position in the i index (assumed of the <type> data type), the data is removed from the index

i_xc_<type-name>

<type> i_xc_<type-name>(index i, integer k);

is the data in the k position in the i index, the data is removed from the index. Like the i_x_* functions, with some implicit conversions performed for mismatching types.


Next: Data Type Specific Index Front Functions, Previous: Index Search Functions, Up: The Index Library   [Index]