我有一个稀疏向量类型std::vector<SparseElement<T,I>>
,其中 SparseElement 是:
template<typename T, typename I = unsigned int>
struct SparseElement
{
I index;
T value;
//............
SparseElement &operator=(const std::pair<I,T> &pair);
}
因为我用于填充std::map<I,T>
作为元素的稀疏向量 a std::pair<I,T>
,所以我想要一个解决方案而不更改 SparseElement 的“索引”和“值”成员:
std::pair<I,T> a;
SparseElement<T,I> b;
b = a; // This is OK!
a = b; // Is there a solution on this problem?
// on containers:
std::vector<SparseElement<T,I>> vec;
std::map<I,T> m(vec.begin(), vec.end()); // Not working.
vec.assign(m.begin(), m.end()); // Working.