Next: Vector Accessing from C, Previous: Vector Creation, Up: Vectors
vector-length
and vector-ref
return information about a
given vector, respectively its size and the elements that are contained
in the vector.
Return the number of elements in vector as an exact integer.
Return the number of elements in vector as a
size_t
.
Return the contents of position k of vector. k must be a valid index of vector.
(vector-ref '#(1 1 2 3 5 8 13 21) 5) => 8 (vector-ref '#(1 1 2 3 5 8 13 21) (let ((i (round (* 2 (acos -1))))) (if (inexact? i) (inexact->exact i) i))) => 13
Return the contents of position k (a
size_t
) of vector.
A vector created by one of the dynamic vector constructor procedures (see Vector Creation) can be modified using the following procedures.
NOTE: According to R5RS, it is an error to use any of these procedures on a literally read vector, because such vectors should be considered as constants. Currently, however, Guile does not detect this error.
Store obj in position k of vector. k must be a valid index of vector. The value returned by `vector-set!' is unspecified.
(let ((vec (vector 0 '(2 2 2 2) "Anna"))) (vector-set! vec 1 '("Sue" "Sue")) vec) => #(0 ("Sue" "Sue") "Anna")
Store obj in position k (a
size_t
) of v.
Store fill in every position of vector. The value returned by
vector-fill!
is unspecified.
Copy elements from vec1, positions start1 to end1, to vec2 starting at position start2. start1 and start2 are inclusive indices; end1 is exclusive.
vector-move-left!
copies elements in leftmost order. Therefore, in the case where vec1 and vec2 refer to the same vector,vector-move-left!
is usually appropriate when start1 is greater than start2.
Copy elements from vec1, positions start1 to end1, to vec2 starting at position start2. start1 and start2 are inclusive indices; end1 is exclusive.
vector-move-right!
copies elements in rightmost order. Therefore, in the case where vec1 and vec2 refer to the same vector,vector-move-right!
is usually appropriate when start1 is less than start2.