Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
2 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 147
1

Объясните как удалять, добавлять и сортировать строки

29.11.2018, 10:15. Просмотров 1694. Ответов 6


подскажите, пожалуйста,как удалять, добавлять и сортировать строки?
мне казалось,что через оператор delete, а оказывается как то по другому.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2018, 10:15
Ответы с готовыми решениями:

Объясните, как удалять строки из текстового файла?
в цикле гетлайн брать из одного файла, записать в другой и переименовать в старый? напишите свои...

Сделать кнопки которые будут удалять и добавлять строки в базу данных.
не могу сделать кнопки которые будут удалять и добавлять строки в базу данных, кто шарит, помогите....

Как добавлять и удалять элементы из очереди?
Не нашел методы Push и Pop для очереди.

Как удалять и добавлять вертексы в шейдер?
Всё копаюсь с морфингом. Есть необходмость в определённые момент добавлять некоторые НОВЫЕ грани в...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
6
6918 / 5984 / 2710
Регистрация: 14.04.2014
Сообщений: 25,506
29.11.2018, 10:20 2
Сначала структуру данных покажи.
0
566 / 349 / 132
Регистрация: 15.09.2017
Сообщений: 1,239
29.11.2018, 10:21 3
Речь о каких конкретно строках идет? есть char[n], есть string, что именно интересует?
delete освобождает ранее выделенную память
0
2 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 147
29.11.2018, 10:36  [ТС] 4
nmcf,
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <ctime>
using namespace std;
 
void ShiftRows (double **a, int n, int K)
{
    for (int i = K; i < n-1; i++)
    a[i]=a[i+1];
}
 
int main()
{
    srand((int)time(0));    
    int n, m, K1, K2;
    cout <<"n="; cin >>n;
    cout <<"m="; cin >>m;
    
      double **a = new double*[n]; 
    for (int i = 0; i < n; i++)
      a[i]=new double[m];
    
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < m; j++)
    {
      a[i][j]=rand()%9+ 1;    
      cout <<a[i][j]<<" ";
    }
    cout <<endl;
    }    
    cout <<endl;
    
    cout <<"K1="; cin >>K1;
    cout <<"K2="; cin >>K2;
    
    for (int k = K1; k <= K2; k++) 
    {
    ShiftRows (a, n, K1-1);    
    n--;
    }    
    
    for (int i = 0; i <n; i++) 
    {
    for (int j = 0; j <m; j++)
    cout <<a[i][j]<<" ";
    cout <<endl;
    }    
    
    for (int i = 0; i < n-1; i++)
    delete [] a[i];
    delete [] a;    
system("pause");
return 0;
}[nick]Avaddon74[/nick],
Добавлено через 1 минуту
nmcf, это как примерно, у меня примерно также. мне объяснить, как здесь делали

Добавлено через 4 минуты
Avaddon74,
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
28
29
30
31
32
33
#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
 
using namespace std;
 
int main() {
  int n;
  cin >> n;
 
  vector<int> a(n);
  for (int i = 0; i < n; ++i)
    cin >> a[i];
 
  vector<int> b;
  for (int i = 0; i < n; ++i) {
    if (a[i] % 2 == 0)
      b.push_back(a[i]);
  }
 
  sort(b.begin(), b.end());
 
  for (int i = 0, j = 0; i < n; ++i) {
    if (a[i] % 2 == 0) {
      cout << b[j++];
    } else {
      cout << a[i];
    }
 
    cout << ' ';
  }
}
как тут отсортировывали по возрастанию.
0
566 / 349 / 132
Регистрация: 15.09.2017
Сообщений: 1,239
29.11.2018, 10:42 5
Лучший ответ Сообщение было отмечено zxcgf как решение

Решение

Вот:
Цитата Сообщение от zxcgf Посмотреть сообщение
sort(b.begin(), b.end());
1
2 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 147
29.11.2018, 10:52  [ТС] 6
Avaddon74, а в предыдущем сообщении как удалили?

Добавлено через 1 минуту
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <ctime>
using namespace std;
 
void ShiftRows (double **a, int n, int K)
{
    for (int i = K; i < n-1; i++)
    a[i]=a[i+1];
}
 
int main()
{
    srand((int)time(0));    
    int n, m, K1, K2;
    cout <<"n="; cin >>n;
    cout <<"m="; cin >>m;
    
      double **a = new double*[n]; 
    for (int i = 0; i < n; i++)
      a[i]=new double[m];
    
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < m; j++)
    {
      a[i][j]=rand()%9+ 1;    
      cout <<a[i][j]<<" ";
    }
    cout <<endl;
    }    
    cout <<endl;
    
    cout <<"K1="; cin >>K1;
    cout <<"K2="; cin >>K2;
    
    for (int k = K1; k <= K2; k++) 
    {
    ShiftRows (a, n, K1-1);    
    n--;
    }    
    
    for (int i = 0; i <n; i++) 
    {
    for (int j = 0; j <m; j++)
    cout <<a[i][j]<<" ";
    cout <<endl;
    }    
    
    for (int i = 0; i < n-1; i++)
    delete [] a[i];
    delete [] a;    
system("pause");
return 0;
}
Avaddon74, Как удалили здесь?
0
566 / 349 / 132
Регистрация: 15.09.2017
Сообщений: 1,239
29.11.2018, 12:40 7
Лучший ответ Сообщение было отмечено zxcgf как решение

Решение

Вот в этом цикле идет сдвиг всех значений массива вверх
Цитата Сообщение от zxcgf Посмотреть сообщение
for (int i = K; i < n-1; i++) a[i]=a[i+1];
т.е. значения из a[1] записываются в a[0] (как пример)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2018, 12:40

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Как в datagrid добавлять и удалять колонки
Как можно сделать динамическое добавление и удаление колонок в datagrid? В devexpress есть...

Как динамически добавлять/удалять страницы ViewPager
Добрый день Всем! как можно добавлять и удалять страницы во ViewPager? пытаюсь делать так: ...

Как правильнее добавлять и удалять заголовки сообщений?
Как правильнее добавлять и удалять заголовки сообщений: делать экземпляр HttpRequestMessage или...

Как, не используя графический модуль, добавлять и удалять круги
Объясните, как не используя графический модуль, я могу добавлять и удалять круги, да ещё и...


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

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

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