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

Как удалить строку/столбец из двумерного вектора? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Глобальный хук. Довести до ума http://www.cyberforum.ru/cpp-beginners/thread49409.html
Здравствуйте, решил изучить механизмы хуков, почитал статьи. Появились вопросы. Вот собственно если делать глобальный хук, то функцию нужно совать в ДЛЛ. Нужно ли ее потом как-то специально загружать? Или как она ко всем процессам пристанет? Потом, как влияет на это #pragma data_seg что оно делаем в этом случае? А так же #pragma comment(linker, "/section:.ИМЯ,rws") Точнее я прочил, что эти...
C++ Square Head на прямоугольном поле Народ! Помогите пожалуйста. Есть 4 задачи на выбор, нужно решить любую! Не скрою, C++, знаю плоховато, а задачу надо сдать сегодня. Кому не сложно - напишите код любой. Буду очень благодарен. Не забуду! Реализовать на C++ Вот сообственно задачи: • (Square Head). Square Head на прямоугольном поле размером 32 х 20 ячеек. В начальный момент времени ячейки закрашены случайными цветами (в... http://www.cyberforum.ru/cpp-beginners/thread49383.html
Предлогаю создать игровую платформу C++
Привет всем,предлогаю создать собственную платформу(игровая,игры: Cs 1.6,War craft,пока такие),с меня сайт ,сайт будет на английском,и игровая платформа должна быть на Angl + Rus ,на ней также можно рубить денги со временем,есть текущая игровая платформа : Garena (www.garena.com) ,придумаем собственное,думаю вы согласитесь,и создадим свою платформу,со временем,может и станем Популярными. Мои...
C++ Классы строки
Создаю класс в котором главной переменной является динамическая строка Проблема в том что когда я удаляю временный класс(в ф-циях операторах сложение и равно) вылетает ошибка (типа не правильно удаляю строку...) вот заголовочный файл класса: #pragma once class Cstring { char* stroka;
C++ Проблема с классом http://www.cyberforum.ru/cpp-beginners/thread49147.html
Доброе времени суток...у меня проблема в создании класса - динамического массива! проблема в изминении определённого элемента и вывода на экран массива компилятор Visual Studio 2008 Вот заголовочный файл(в нём описание класса) #pragma once class Carray { int* masiv;
C++ Программинг для Windows Всем доброго время суток) Я хочу начать программировать для Windows, но сначала хотел бы задать вам 2 вопроса 1)с чего лучше начать изучение с win32 api как осовы или с mfc как более простого и потом уже перейти к api 2)очень простой: какую литературу посоветуете? всем заранее спасибо:drink: подробнее

Показать сообщение отдельно
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
05.09.2009, 20:23     Как удалить строку/столбец из двумерного вектора?
Чёт меня понесло. вот..
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
55
56
57
58
59
60
61
62
#include <vector>
#include <iostream>
 
using namespace std;
 
typedef vector< vector<int> > Matrix;
typedef vector<int> Line;
 
void InitMatrix(Matrix&  m)
{
  int line=1;
  for (Matrix::iterator it_col=m.begin(); it_col!=m.end(); it_col++, line++)
    for (Line::iterator it_row=(*it_col).begin(); it_row!=(*it_col).end(); it_row++)
     *((*it_col).begin())=line;
}
 
void PrintMatrix(Matrix&  m)
{
  int line=1;
  for (Matrix::iterator it_col=m.begin(); it_col!=m.end(); it_col++, line++)
  {   cout<<"Line:"; cout.width(2);  cout<<line;
    for (Line::iterator it_row=(*it_col).begin(); it_row!=(*it_col).end(); it_row++)
    { cout.width(3);
      cout<<" "<<*((*it_col).begin());
    } 
    cout<<endl;
  }
}
 
 
void DeleteLine(Matrix& m, int numb)
{
  if (!m.empty())
  { int n=1;
    for (Matrix::iterator it_col=m.begin(); it_col!=m.end(); it_col++, n++)
    {
      if (n==numb)
      { m.erase(it_col); return;}
    } 
    cout<<"Not Line"<<endl;
  }// end  if (!m.empty())
  else
    cout<<"empty"<<endl;
}
 
void main()
{
  int M=10, N=10;
  Matrix v( N, Line (M, 1));
 
  cout<<"Init matrix "<<endl;
  InitMatrix(v);    // Г§Г*ïîëГ*ГїГҐГІ Г¬Г*òðèöó
  cout<<"Print matrix with initial values"<<endl;
  PrintMatrix(v);   // âûâîä Г*Г* ГЅГЄГ°Г*Г*
  
  cout<<endl; 
  cout<<"Delete first line in matrix "<<endl; 
  DeleteLine(v, 1); // ГіГ¤Г*ëÿåò, åñëè ìîæåò, ГіГЄГ*Г§Г*Г*Г*ГіГѕ ëèГ*ГЁГѕ
  cout<<"Print result:"<<endl;
  PrintMatrix(v);
  system("PAUSE");
} // end  main()
Добавлено через 20 минут
А вот со столбцами, пробуй эту
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <vector>
#include <iostream>
 
using namespace std;
 
typedef vector< vector<int> > Matrix;
typedef vector<int> Line;
 
void InitMatrix(Matrix&  m)
{
  int line=0;
  for (Matrix::iterator it_col=m.begin(); it_col!=m.end(); it_col++, line++)
  { line+=100;
    for (Line::iterator it_row=(*it_col).begin(); it_row!=(*it_col).end(); it_row++)
     *(it_row)=line++;
  }
}
 
void PrintMatrix(Matrix&  m)
{
  int line=1;
  for (Matrix::iterator it_col=m.begin(); it_col!=m.end(); it_col++, line++)
  {   cout<<"Line:"; cout.width(2);  cout<<line;
    for (Line::iterator it_row=(*it_col).begin(); it_row!=(*it_col).end(); it_row++)
    { cout.width(3);
      cout<<" "<<*(it_row);
    } 
    cout<<endl;
  }
}
 
 
void DeleteColum(Matrix& m, int numb)
{
  if (!m.empty())
  { int n;
    for (Matrix::iterator it_col=m.begin(); it_col!=m.end(); it_col++)
    {
      n=1;
      for (Line::iterator it_row=(*it_col).begin(); it_row!=(*it_col).end(); it_row++,n++)
        if (n==numb)
        { (*it_col).erase(it_row); break;}
    } 
  }// end  if (!m.empty())
  else
    cout<<"empty"<<endl;
}
 
void DeleteLine(Matrix& m, int numb)
{
  if (!m.empty())
  { int n=1;
  for (Matrix::iterator it_col=m.begin(); it_col!=m.end(); it_col++, n++)
  {
    if (n==numb)
    { m.erase(it_col); return;}
  } 
  cout<<"Not Line"<<endl;
  }// end  if (!m.empty())
  else
    cout<<"empty"<<endl;
}
 
void main()
{
  int M=5, N=5;
  Matrix v( N, Line (M, 1));
 
  cout<<"IniГҐ matrix "<<endl;
  InitMatrix(v);    // Г§Г*ïîëГ*ГїГҐГІ Г¬Г*òðèöó
  cout<<"Print matrix with initial values"<<endl;
  PrintMatrix(v);   // âûâîä Г*Г* ГЅГЄГ°Г*Г*
  
  cout<<endl; 
  cout<<"Delete first line in matrix "<<endl; 
  DeleteLine(v, 1); // ГіГ¤Г*ëÿåò, åñëè ìîæåò, ГіГЄГ*Г§Г*Г*Г*ГіГѕ ëèГ*ГЁГѕ
  DeleteColum(v, 4);
  DeleteColum(v, 1);
  cout<<"Print result:"<<endl;
  PrintMatrix(v);
  system("PAUSE");
} // end  main()
 
Текущее время: 16:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru