Чтобы упростить манипуляции с контейнерами, я хотел найти API с такими же функциями, как у известного Java 8 Stream API, но в C ++.После некоторых исследований я обнаружил, что потоковая библиотека Джона Шейнермана C ++ доступна по следующей ссылке:
https://bitbucket.org/jscheiny/streams
Я попытался выполнить следующий код с помощью Visual Studio Community 2017 для тестирования API:
#include <Stream.h>
int main() {
MakeStream::from({ 1, 2, 3, 4, 5 })
.for_each([](int value) {
std::cout << value << std::endl;
});
return (EXIT_SUCCESS);
}
Пока здесь нет проблем.Код правильно отображает числа.
Но когда я инициализирую вектор в переменной:
#include <Stream.h>
int main() {
std::vector<int> x = { 1, 2, 3, 4, 5 };
MakeStream::from(x)
.for_each([](int value) {
std::cout << value << std::endl;
});
return (EXIT_SUCCESS);
}
У меня есть место записи нарушения прав доступа по адресу 0xDDDDDDDD в заголовочном файле xutility.
Проблема возникает при уничтожении вектора.
Я действительно потерялся.Кто-нибудь может сказать мне, что происходит?
Большое спасибо за вашу помощь.