0

Objective-C アプリケーションで C++ コードを実行しているときに、奇妙な例外に遭遇しました。libxml2 を使用して XSD ファイルを読み取っています。次に、関連するタグを Tag クラスのインスタンスとして std::list に格納します。次に、リストの反復子を使用して、このリストを std::vector にコピーします。ただし、リストの一部の要素がベクトルにコピーされないことがあります。どんな助けでも大歓迎です。

 printf("\n length list = %lu, length vector = %lu\n",XSDFile::tagsList.size(), XSDFile::tags.size() );
std::list<Tag>::iterator it = XSDFile::tagsList.begin();
//result: length list = 94, length vector = 0

/*
for(;it!=XSDFile::tagsList.end();++it)
{
    XSDFile::tags.push_back(*it); //BAD_ACCESS code 1  . .  very bizarre . . . . 25
}

 */
std::copy (XSDFile::tagsList.begin(), XSDFile::tagsList.end(), std::back_inserter (XSDFile::tags));

printf("\n Num tags in vector = %lu\n", XSDFile::tags.size());

if (XSDFile::tagsList.size() !=  XSDFile::tags.size())
{
    printf("\n length list = %lu, length vector = %lu\n",XSDFile::tagsList.size(), XSDFile::tags.size() );
    //result: length list = 94, length vector = 83
}
4

1 に答える 1