21.09.2013, 16:19. Просмотров 1416. Ответов 10
Eсть такой код:
C++ |
1
2
3
4
5
6
7
8
9
| vector<int> v = {-3, -5, -6, 1, 2, 3};
for (size_t i = 0; i != v.size(); i++)
{
if (v[i] > 0)
{
v.insert(v.begin(), v[i]);
v.erase(v.begin + i + 1);
}
} |
|
Как переделать его на работу с итераторами? Пробую так, но не получается:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
|
vector<int> v = {-3, -5, -6, 1, 2,
int c = 0;
for (auto i = v.begin(); i != v.end(); i++)
{
if ((*i) > 0)
{
v.insert(v.begin(), (*i));
++c;
}
}
v.resize(c); |
|
Подскажите, в чем ошибка?