Условия вашего цикла неверны, так как они всегда false
!
Посмотрите на циклы там
for (int i = 0; i == 10; i++)
// ^^^^^^^-----> condition : is it `true` when i is 0 (NO!!)
и
for (int count=0; count==4; count++)
// ^^^^^^^^^-----> condition : is it `true` when i is 0 (NO!!)
выпроверка i
равна 10
и 4
соответственно, прежде чем увеличивать его. Это всегда false
. Следовательно это не выполнило далее. Они должны быть
for (int i = 0; i < 10; i++)
и for (int count=0; count<4; count++)
Во-вторых, vector<int> myvector(10);
выделяет вектор целых чисел и инициализируется с помощью 0
с. Это означает, что цикл после этой строки (то есть в main()
)
for (int i = 0; i == 10; i++) {
myvector.push_back(i);
}
вставит в нее еще 10 элементов (то есть i
s), и вы получите myvector
с 20
элементов. Вы, вероятно, намеревались сделать
std::vector<int> myvector;
myvector.reserve(10) // reserve memory to avoid unwanted reallocations
for (int i = 0; i < 10; i++)
{
myvector.push_back(i);
}
или проще, используя std::iota
из заголовка <numeric>
.
#include <numeric> // std::iota
std::vector<int> myvector(10);
std::iota(myvector.begin(), myvector.end(), 0);
В качестве примечания, избегайте практики с using namespace std;