我有一個類:優化類結構在C++
class A
{
double a;
map <int, double> b;
public:
A():a(0.0){}
A(const double aa, const map <int, double> & bb): a(aa), b(bb){}
A(double && aa, map <int, double> && bb):a(aa), b(bb) {}
};
優化器(VS2012)示出了線A(a1*b1, std::move(bmap))
花費的大部分時間。
我在這裏錯過了什麼可以加速對象構造嗎?我最近纔開始學習移動構造函數,所以我不確定我的移動構造函數或其使用是否最優化。更多的代碼
點點: 我
A operator *(double in)
{
if(in !=0.0)
{
map<int, double> tmp(b); //second bottleneck
for(auto & itr: tmp)
tmp.second *= in;
return A(in * a, std::move(tmp)); //first optimization bottleneck
}
return A();
}
你在做什麼?構造函數可能會佔用大部分時間,因爲您正在使用它(或濫用它,誰知道?)...... – MikMik