Форум программистов, компьютерный форум CyberForum.ru

Как удалять определенные значения из массива? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Fopen не видит путь к файлу http://www.cyberforum.ru/cpp-beginners/thread1242204.html
#include <stdio.h> #include <iostream> #include <fstream> #include <string> #include <vector> #include <map> typedef std::map<std::string, std::string> mapss; // An unsigned char can store 1 Bytes (8bits) of data (0-255)
C++ Почему visual studio 2008 не видит директиву #include <iostream> Здравствуйте! Помогите пожалуйста с решением проблемы. Проблема стоит в том что мой компилятор не видит #include <iostream> и требует ввести "stdafx.h" но если я ее ввожу то у меня перестает видить cin и cout http://www.cyberforum.ru/cpp-beginners/thread1242200.html
Для каждой открывающей скобки найти позицию ей соответствующей закрывающей скобки C++
Доброго времени суток. Подскажите пожалуйста алгоритм или путь к решению задачи, используя СТЕК Дана ПСП, ваша задача для каждой открывающей скобочки найти позицию ей соответствующей закрывающей скобочки. пример входные данные (())() выходные
Корректно ли использовать goto? C++
Читал что оператор goto вообще советуют не использовать, кроме разве что глубоких циклов. Но нормально ли это будет, например, вот в таком коде: int main() { char choice; cin >> choice; while (cin.get() != '\n') { cin.ignore(100, '\n'); bad:cout << "Bad choice. Try again.\n"; cin >> choice;
C++ Найти медианы на всех префиксах последовательности X длины n и вывести их сумму http://www.cyberforum.ru/cpp-beginners/thread1242172.html
В этой задаче необходимо найти медианы на всех префиксах последовательности X длины n и вывести их сумму. Медианой последовательности из нечетного (k = 2 ⋅ l + 1) количества элементов будем называть элемент, который стоял бы на (l + 1)-ом месте, если эту последовательность отсортировать. Медианой последовательности из четного (k = 2 ⋅ l) количества элементов будем называть элемент, который...
C++ Требуется идентификатор, исправить ошибки Помогите, пожалуйста, исправить ошибки. class rus_codecvt : public std::codecvt<char, char, std::mbstate_t> { protected: virtual result do_in(std::mbstate_t&, const char* from, const char* from_end, const char*& from_next, char* to, char* to_limit, char*& to_next ) const { const int i = std::min(to_limit - to, from_end - from); OemToCharBuff(from, to, i); from_next = from +... подробнее

Показать сообщение отдельно
BlackIce
310 / 172 / 64
Регистрация: 18.01.2014
Сообщений: 387
13.08.2014, 21:17     Как удалять определенные значения из массива?
Никак, только переприсвоить этому элементу значение следующего, слудующему значение следующего за ним и т.д. до конца массива, при этом размер массива и выделенной для него памяти не изменяется и вы сами должны следить за текущей длинной массива:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <ctime>
#include <cstdlib>
#include <numeric>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
 
int main() {
    srand(time(0));
    int *a = new int[10], n = 10;
    cout << "массив:";
    for (int i = 0; i < n; ++i) {
        a[i] = rand() % 100;
        cout << ' ' << a[i];
    }
    double avg = accumulate(a, a + n, 0.0) / n;
    cout << "\nсреднее арифметическое: " << avg << endl;
    n = remove_if(a, a + 10, bind2nd(less<double>(), avg)) - a;
    cout << "результат:";
    for (int i = 0; i < n; ++i) cout << ' ' << a[i];
    delete[] a;
}
Если вам нужно именно удалять, то можете воспользоваться std::list или реализовать свой класс для списков.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru