to minimize memory requirement as much as possible
For these sort of tasks, std::vector would usually be the first choice. However, when an element is added that exceeds the current vector memory allocation, it will obtain more memory of a larger size and copy the existing elements to this new memory and then free the old memory. Hence for a short time during this re-allocation memory requirements will more than double. Hence to minimize memory requirement, in this case vector wouldn't be the choice.
Knowing how the data is to be accessed will then help with the choice - deque, list. There is also queue and stack if they are appropriate.
Then again, the std::list is a double-linked list. We thus know a minimum that it needs for each data element to be clearly more than what std::vector needs.
It's a ridiculous question to ask a beginner. First, you never have an unknown number of ints, and if you think you do, then you haven't studied the data close enough yet. There will be some maximum size that you're willing to deal with, a most-common size, and the solution for dealing with 1000 ints is different than the solution for dealing with gigabytes of ints. And it depends on what the values of these ints are. If 99% of the ints are 0, that's a different solution than if they're uniformly distributed to 2^32 or whatever.
A hybrid approach where you have a few chains of vectors may be a solution. But there isn't enough information to know.
Also, 1-poster with a likely commercial link in profile.