我有一個向量Foo *。我放入的內容總是Foo *,沒有多態性。針對指針向量優化對新的調用?
我使用了一個指針向量,因爲我嘗試了一個列表並且一直崩潰。我需要能夠在其他地方使用指針,所以Foo的常規矢量將無法工作。
ex:b.add(& myRegularVec [6]); //當我添加更多這個指針不會有效。
問題是我需要向量的保留能力。現在,我有這樣的功能:
void addRange(int quantity)
{
for (int i = 0; i < quantity; ++i)
{
Foo* obj = new Foo(i);
m_theVector.push_back(obj);
b.add(obj);
}
}
不幸的是,這要求新的一大堆,並剖析說,這是瓶頸。
我不能使指針無效ex:增長我需要重做new []。
我可以做些什麼來避免這麼多的電話來新的,並使其更快?
感謝
這句話的含義是什麼:'需要能夠在其他地方使用指針,所以Foo的常規矢量將無法工作。 – 2012-03-24 14:24:53
另外,用'i'做'Foo'真的被__initialized__嗎?它使得優化變得困難,使用默認初始化會更容易,然後對每個'foo'執行像'foo.set_value'這樣的操作。 – orlp 2012-03-24 14:27:02
ex:b.add(&myRegularVec [6]); //當我添加更多這個指針不會有效。 – jmasterx 2012-03-24 14:27:24