We pass only iterators to algorithms, not containers, so the algorithms have no direct access to the container members. If we want change the size of a container, we must do it by calling the cotainer members. Thus the algorithms cannot change the size of containers.
Insert iterator, however, has access to container members when we pass the container to it. Thus it can change the size of containers.