How can I know the index of the first non-zero element in a sparse_vector in ublas and each subsequent nonzero element as well? The function begin() gives me an iterator that can be used to know the first non-zero value stored, not its index in the vector.
Here is the answer, after Oswin Krause, from the ublas mainling list:
Iterators offer a method index() which returns the desired result. But remember that only the const_iterator is really sparse!
for(SparseVector::const_iterator pos = sparseVec.begin(); pos != sparseVec.end();++pos){ std::cout << pos.index()<< " "<< *pos; }