. Я решал задачу программирования, которая хочет найти СИММЕТРИЧНУЮ РАЗНИЦУ между двумя множествами. Я решил это с помощью STL set_symmetric_difference
. Мне даны два vector<int>s
, A
иB
:
A = {342,654,897,312,76,23,78}
B = {21,43,87,98,23,756,897,234,645,876,123}
Должен вернуться (правильный ответ):
{ 21,43,76,78,87,98,123,234,312,342,645,654,756,876 }
Но я получаю:
{ 21,43,76,78,87,98,123,234,312,342,645,65,756,876}
В чем проблема ? Вот мой код:
sort(A.begin(), A.end());
sort(B.begin(), B.end());
// allocate the smallest size of A,B as maximum size
vector<int> c(A.size() < B.size() ? B.size() : A.size());
vector<int>::iterator i;
i = set_symmetric_difference(A.begin(), A.end(), B.begin(), B.end(), c.begin());
return vector<int>(c.begin(), i);
ПРИМЕЧАНИЕ: Я получаю правильные ответы на остальные примеры. Этот пример дает мне только этот неправильный ответ.
Я протестировал его в Visual Studio и получил сообщение об ошибке :«Итератор не увеличивается»
-. 121 ---849180-Критическое исправление ошибки в одном из моих приложений недавно было отклонено из-за предполагаемого нарушения рекомендаций по хранению данных iCloud.
Вот то, как мое приложение хранит данные (не было проблемой с тех пор, как первая версия моего приложения была одобрена в 2009 году):
Обновление ранее в этом году было отклонено по той же причине, но когда я дал им объяснение выше,статус приложения изменился с «Отклонено» на «На рассмотрении» и «В обработке для App Store». Они не прислали мне никаких объяснений, поэтому я подумал, что это просто недоразумение со стороны рецензента.
На этот раз рецензент ответил на мое объяснение, просто сказав, что данные, сгенерированные не -пользователем -, не должны храниться в iCloud, а мое обновление остается в состоянии «Отклонено».
Но я не понимаю, что я должен здесь делать. Поскольку вся работа пользователя хранится в базе данных, я не могу исключить ее из резервной копии iCloud или сохранить в папке Cache. Кроме того, я не могу четко отделить «сгенерированные пользователем -» данные «не -сгенерированные пользователем -», потому что приложение работает с одним и тем же файлом базы данных. Исходные данные, созданные не -пользователем -, будут быстро заменены собственными данными пользователя, хотя имя файла и расположение каталога базы данных останутся прежними.
И даже если в базе данных не было демонстрационных данных, любое приложение, поддерживаемое базой данных -, все равно должно будет создать пустую базу данных при запуске -, даже если единственное, что оно содержит, — это схема базы данных приложения.
Это должно быть очень распространенная проблема, но, к сожалению, я не могу просто отключить резервное копирование -пользователи вкладывают много труда в данные, которые они хранят в моем приложении, и резервное копирование iCloud очень важно для них.
Какие варианты у меня есть на данный момент? Вот что я вижу:
Свяжитесь с Apple еще раз и попытайтесь объяснить, что происходит.
Могу ли я установить для атрибута резервного копирования файла значение НЕТ, а затем переключать его на ДА только тогда, когда пользователь вносит свое первое изменение? Это нормально с технической точки зрения и с Apple?
Удалите данные моего примера из базы данных. Это будет очень плохо для удобства использования и увеличит мою нагрузку на поддержку, но я готов это сделать, если мое обновление будет одобрено. Однако мне все равно придется создавать базу данных-заглушку при запуске, чтобы содержать пустую схему базы данных,так что я не уверен, что это даже повлияет на процесс утверждения.
Плакать.
У кого-нибудь есть совет? Я должен представить, что есть много других приложений, которые используют базу данных так же, как и мое, но не имеют возможности просто отключить резервное копирование.
Также очень удручает то, что любые изменения, которые я делаю, потребуют еще одного раунда тестирования и проверки приложения, что отсрочит мое критическое обновление еще на 2 -3 недели. :/
ОБНОВЛЕНИЕ:Может есть еще вариант :может просто сохранить файл в Library/
вместо Documents/
, так как у них проблема видимо именно с использованием папки "Документы"? Будет ли сохранена резервная копия файла, если он хранится в Library/
?
ОБНОВЛЕНИЕ 2:Больше всего меня сбивает с толку то, что любое приложение, поддерживаемое базой данных -(, даже если оно использует Core Data, я предполагаю, что )придется создать файл базы данных, содержащий как минимум схему приложения. Проблема только в том, что размер моей базы данных слишком велик? Потому что я не понимаю, как любое приложение с поддержкой базы данных -может избежать необходимости создавать базу данных при запуске.
ОБНОВЛЕНИЕ 3:Я использую пользовательский слой взаимодействия SQLite -, а не Core Data. Кроме того, данные примера состоят из начальных изображений, которые пользователь, вероятно, в конечном итоге удалит, когда начнет использовать приложение.