Aşağıdaki koda sahibim (buradaki ilk örneği büyük ölçüde takip eder: http://www.boost.org/doc/libs/1_42_0/libs/multi_index/doc/examples.html)). Bazı nedenlerden dolayı, çoklu indekse yalnızca 10000 giriş yapılarak, programı çalıştırmak birkaç dakika alır. Yanlış bir şey mi yapıyorum yoksa bu beklenen mi? (Çoklu endeks kaplarda dayalı benim en iyi bilgiye olan) boost::bi_map
ile Kendi deneyimYavaş ekleme performansı ile çoklu indeksi artırın
struct A
{
int id;
int name;
int age;
A(int id_,int name_,int age_):id(id_),name(name_),age(age_){}
};
/* tags for accessing the corresponding indices*/
struct id{};
struct name{};
struct age{};
typedef multi_index_container<
A,
indexed_by<
ordered_unique<
tag<id>, BOOST_MULTI_INDEX_MEMBER(A,int,id)>,
ordered_non_unique<
tag<name>,BOOST_MULTI_INDEX_MEMBER(A,int,name)>,
ordered_non_unique<
tag<age>, BOOST_MULTI_INDEX_MEMBER(A,int,age)> >
> A_set;
int main()
{
A_set es;
for (int a = 0; a != 10000; a++) {
es.insert(A(a,a+1,a+2));
}
return 0;
}
NDEBUG makrosunu ayarlıyor musunuz? Bunu ayarlarsam, kod hızlıca yanıp söner. – pmr