Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
FanOfGun
6 / 6 / 4
Регистрация: 13.10.2012
Сообщений: 101
1

vector. Заменить 3 элемента в середине одним

22.07.2013, 19:37. Просмотров 924. Ответов 1
Метки нет (Все метки)

Допустим есть вектор с 10 эл-ми, нужно элементы под номерами 3,4,5 заменить одним. Как это можно сделать? Заранее благодарен.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.07.2013, 19:37
Ответы с готовыми решениями:

Передача vector с i-го элемента
можно ли вектор передавать с i-го элемента, кто знает, подскажите void ARR(int...

Удаление элемента из vector
Здорова! Пытаюсь удалить элемент из vector<string>, но чото ошибку выдает и я...

Удаление элемента из vector
Подскажите как удалить 1 элемент из массива типа vector, delete не работает...

Заменить пожалуйста конструкцию Vector на массивы
void create_game_map() // рандомно создаем игровую карту { unsigned limit =...

Удаления элемента Vector-а по имени
У меня есть вот такая функция создания экземпляра класса в динамической памяти:...

1
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.07.2013, 20:29 2
Лучший ответ Сообщение было отмечено FanOfGun как решение

Решение

Например, так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    vector <int> vec(10);
    copy(arr, arr + 10, vec.begin());
    
    int size = vec.size();
    for (int i = 0; i < size; ++i)
        cout << vec[i] << ' ';
    cout << endl;
 
    int a = 22;
    vec[3] = a;
    vec.erase(vec.begin() + 4, vec.begin() + 6);
    
    size = vec.size();
    for (int i = 0; i < size; ++i)
        cout << vec[i] << ' ';
    cout << endl;
 
    cin.get();
    return 0;
}
Добавлено через 5 минут
Или так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    vector <int> vec(10);
    copy(arr, arr + 10, vec.begin());
    
    int size = vec.size();
    for (int i = 0; i < size; ++i)
        cout << vec[i] << ' ';
    cout << endl;
 
    int a = 22;
    vec.erase(vec.begin() + 3, vec.begin() + 6);
    vec.insert(vec.begin() + 3, a);
    
    size = vec.size();
    for (int i = 0; i < size; ++i)
        cout << vec[i] << ' ';
    cout << endl;
 
    cin.get();
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.07.2013, 20:29

Удаление элемента из std::vector<>
- Здравствуйте завсегдатаи! Подскажите пожалуйста, можно ли из STL-ского...

Удалить элемент, находящийся в середине стека, если число элементов нечётное, иначе - два средних элемента
ЗДРАВСТВУЙТЕ,ВОТ ЗАДАЧА: Удалить элемент, находящийся в середине стека , если...

Класс vector. Заменить все элементы в интервале [a,b] на x. - C++
Дана последовательность из n целых чисел. Занести их в вектор. Заменить все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru