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

Структуры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Скорость сравнений и присваиваний http://www.cyberforum.ru/cpp-beginners/thread823973.html
Доброго времени суток. Интересует вопрос: насколько примерно процесс сравнения двух элементов (напр. типа int) проходит быстрее, чем присваивание одному элементу значения другого. Что меняется, если сравниваются не переменные встроенных типов, а объекты определённых в программе классов? Спасибо.
C++ Static int ошибка //8.cpp #include <iostream> using namespace std; //************************************************* class object { private: int count; static int number; public: http://www.cyberforum.ru/cpp-beginners/thread823966.html
задача, на базавом уровне знания с++ C++
Заранее благодарю!
C++ Указатели на структуру
1. В чём разница этих двух конструкций? Это одно и тоже или нет? . struct tagTREE { int inf; tagTREE *left; tagTREE *right; }; struct tagTREE *TREE //указатель на структуру
C++ Переведите программу в C++ http://www.cyberforum.ru/cpp-beginners/thread823923.html
Изначально прога написана на Паскале. Нужно перевести ее в C++ . И сделайте пожалуйста скрин работы программы) Условие: Файл F генерируется с случайных чисел, размерность файла задает пользователь. Найти количество и среднее арифметическое отрицательных чисел в файле. Код: program 17; uses crt; var f:file of integer; i,d,n,k,k1:integer; in_name:string; k2:rеal; Begin
C++ Создать иерархию типов - море, залив и бухта Создать иерархию типов - море, залив и бухта. Классы должны содержать конструкторы, включая конструктор копирования, функции установки данных void Setdata() и вывод данных void Showdata(). В основной программе создайте два объекта класса и вызовите методы. P.S.:если можно с коментами!!! подробнее

Показать сообщение отдельно
Praktolock
65 / 65 / 1
Регистрация: 29.11.2011
Сообщений: 300
31.03.2013, 18:37
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
83
84
85
86
87
88
89
90
91
#include<iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;
 
#define size 5
 
struct addr
{
       char surname[30]; 
       char street[40];
       char city[20];
       char building[4];
       char flat[6];
      // addr *next;
};
 
bool operator !=(addr a, addr b)
{
 for(int i=0;i<sizeof(addr);i++)
 {
  if((*(char*)(&a+i))^(*(char*)(&b+i)))return false;
 };
 return true;
};
 
/* bool isSurname(addr *root, char surname)  
 {
      addr *p;
      p = root;
      while(p)
      {
              if(p->surname == surname) return true;
              p = p->next;
      }
      return false;
 }*/
 
int main()
{
    addr a[size];
    addr b[size];
    addr c[size*2];
   /* addr *root;   
       root=0;  
    char  surname;*/
    int k,j, sum=size;
    
    for(int i=0; i<size; i++)
    {    cout<<"Enter surname "<<i+1 <<" person in the first list "<<endl;
         gets((a+i)->surname);
         
         cout<<"Enter city, street, building and flat where lived "<<i+1 <<" person in the first list"<<endl;
         gets((a+i)->city);
         gets((a+i)->street);
         gets((a+i)->building);
         gets((a+i)->flat);
         
         cout<<"Enter surname city, street, building and flat where lived"<<i+1 <<" person in the second list "<<endl;
         gets((b+i)->surname);
         gets((b+i)->city);
         gets((b+i)->street);
         gets((b+i)->building);
         gets((b+i)->flat);
         
    }
    for (k=0; k<size; k++)c[k]=a[k];
    for (k=0; k<size; k++)
    {
        bool included=false;
        for (j=0; j<size && included; j++)
        {
            if(b[k]!=a[j])
            {
            //ничего не делаем
            }
            else
            {
                included=true;//а вот если равны значит оно уже должно быть в массиве с
                break;        //и смысла дальше листать этот цыкл нет
            }
        }
        if(!included)c[sum++]=b[k];
    }
  //  if(!isSurname(root, surname))
     for (k=0; k<sum; k++)
        cout<<c[k].surname<<endl;
       
system ("pause");
return 0;    
}
попробуй, мне лень запускать и набивать эти все значения для теста

Добавлено через 5 минут
йойойой нето operator != не такой, щас переделаю

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
bool operator !=(addr a, addr b)
{
 if(strcmp((char*)&a.surname, (char*)&b.surname)) return false;
 if(strcmp((char*)&a.street,  (char*)&b.street))  return false;
 if(strcmp((char*)&a.city,    (char*)&b.city))    return false;
 if(strcmp((char*)&a.building,(char*)&b.building))return false;
 if(strcmp((char*)&a.flat,    (char*)&b.flat))    return false;
 return true;
};
примерно так он должен выглядеть
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru