#include <iostream>
#include <vector>
struct Location
{
Location(int x, int y)
: x(x)
, y(y)
{
std::cout << "ctor" << std::endl;
}
Location(const Location & other)
: x(other.x)
, y(other.y)
{
std::cout << "copy ctor" << std::endl;
}
int x;
int y;
};
int main ()
{
// local objects
Location locs[3]{ {1, 2}, {3, 4}, {5, 6} };
// code that updates locs[0], locs[1], locs[2] ...
// construct vector
std::vector<Location> pointsVec {locs, locs+3};
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKc3RydWN0IExvY2F0aW9uIAp7CiAgICBMb2NhdGlvbihpbnQgeCwgaW50IHkpCiAgICA6IHgoeCkKICAgICwgeSh5KQogICAgewogICAgICAgIHN0ZDo6Y291dCA8PCAiY3RvciIgPDwgc3RkOjplbmRsOwogICAgfQoKICAgIExvY2F0aW9uKGNvbnN0IExvY2F0aW9uICYgb3RoZXIpCiAgICA6IHgob3RoZXIueCkKICAgICwgeShvdGhlci55KQogICAgewogICAgICAgIHN0ZDo6Y291dCA8PCAiY29weSBjdG9yIiA8PCBzdGQ6OmVuZGw7CiAgICB9CgogICAgaW50IHg7CiAgICBpbnQgeTsKfTsKCmludCBtYWluICgpCnsKICAgIC8vIGxvY2FsIG9iamVjdHMgCiAgICBMb2NhdGlvbiBsb2NzWzNdeyB7MSwgMn0sIHszLCA0fSwgezUsIDZ9IH07CiAgICAKICAgIC8vIGNvZGUgdGhhdCB1cGRhdGVzIGxvY3NbMF0sIGxvY3NbMV0sIGxvY3NbMl0gLi4uCgogICAgLy8gY29uc3RydWN0IHZlY3RvciAKICAgIHN0ZDo6dmVjdG9yPExvY2F0aW9uPiBwb2ludHNWZWMge2xvY3MsIGxvY3MrM307CgogICAgcmV0dXJuIDA7Cn0=