3
我有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::pair<I,T>
一個std::map<I,T>
,我想
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.
'A = B;''也許模板的std ::對運算符=(對 LHS,SparseElement常量& SE);'作爲遊離功能。 –
RedX
2013-03-21 12:52:39
@RedX - 不,我也爲此而墮落。 'operator ='必須是由標準定義的非靜態成員函數。 – 2013-03-21 12:53:29
@KirilKirov Dang,如果可能的話,本來會很好。 – RedX 2013-03-21 12:54:12