## Glas :## [glas] return type of operator[](size_type) for sparse vectors? |

**From:** Toon Knapen (*toon.knapen_at_[hidden]*)

**Date:** 2006-04-25 15:22:23

**Next message:**Toon Knapen: "Re: [glas] A few more thoughts about return type of operator[](size_type) for sparse vectors"**Previous message:**Toon Knapen: "Re: [glas] when to evaluate scalar expressions"**Next in thread:**Russell Smiley: "Re: [glas] return type of operator[](size_type) for sparse vectors?"**Maybe reply:**Russell Smiley: "Re: [glas] return type of operator[](size_type) for sparse vectors?"**Reply:**Guntram Berti: "Re: [glas] return type of operator[](size_type) for sparse vectors?"

Given a sparse vector v of size 10, what would v[0] return? Should it

return a reference to the element at position 0 in the sparse vector.

What if that element is a structural-zero? It clearly is not as

straightforward as with dense vectors.

The options AFAICT are:

1) provide no 'operator[](size_type)' to avoid confusion

2) return the value at the corresponding position or if the position

corresponds to a structural-zero return zero. Thus in that case

operator[] will not affect/change the structure and operator[] will not

allow to change the value at the corresponding position.

3) return a proxy. If the proxy is being assigned to, the structure will

be changed in case the position corresponded with a structural-zero.

What would you find most intuitive? (of course other methods allow to

query if a specific position corresponds to a non-zero or not so

operator[] is not the only way to access elements). Also your feedback

on you experience with other libraries can be usefull to make the right

decision here.

toon

**Next message:**Toon Knapen: "Re: [glas] A few more thoughts about return type of operator[](size_type) for sparse vectors"**Previous message:**Toon Knapen: "Re: [glas] when to evaluate scalar expressions"**Next in thread:**Russell Smiley: "Re: [glas] return type of operator[](size_type) for sparse vectors?"**Maybe reply:**Russell Smiley: "Re: [glas] return type of operator[](size_type) for sparse vectors?"**Reply:**Guntram Berti: "Re: [glas] return type of operator[](size_type) for sparse vectors?"