Характеристики структур по сравнению с классами

А также я знаю, PYTHONSTARTUP для команд, которые будут выполняться, когда интерпретатор запускает [1] . rlcompleter для автозавершения внутренние Ваш сценарий, если это использует readline библиотека. Что-то вроде этого:

$ ./myscript.py
My Script version 3.1415.
Enter your commands:
myscript> Begin
myscript> End

В Вашем примере Вы хотите завершиться на оболочка командная строка. Это автозавершение является функцией оболочки (или bash или zsh, независимо от того, что Вы используете). Посмотрите, например, введение для избиения автозавершения (также часть 2 ). Для zsh посмотрите, например это руководство .

25
задан systemsfault 25 March 2011 в 12:54
поделиться

2 ответа

Просто сделайте эксперимент, люди!

Вот код для эксперимента, который я разработал:

#include <iostream>
#include <string>
#include <ctime>
using namespace std;
class foo {
  public:
    void foobar(int k) {
      for (k; k > 0; k--) {
        cout << k << endl;
      }
    }
    void initialize() {
      accessor = "asdfasdfasdfasdfasdfasdfasdfasdfasdfasdf";
    }
    string accessor;
};
struct bar {
  public:
    void foobar(int k) {
      for (k; k > 0; k--) {
        cout << k << endl;
      }
    }
    void initialize() {
      accessor = "asdfasdfasdfasdfasdfasdfasdfasdfasdfasdf";
    }
    string accessor;
};

int main() {
  clock_t timer1 = clock();
  for (int j = 0; j < 200; j++) {
    foo f;
    f.initialize();
    f.foobar(7);
    cout << f.accessor << endl;
  }
  clock_t classstuff = clock();
  clock_t timer2 = clock();
  for (int j = 0; j < 200; j++) {
    bar b;
    b.initialize();
    b.foobar(7);
    cout << b.accessor << endl;
  }
  clock_t structstuff = clock();
  cout << "struct took " << structstuff-timer2 << endl;
  cout << "class took " << classstuff-timer1 << endl;
  return 0;
}

На моем компьютере struct взяла 1286 тактов, а класс - 1450 часов клещи. Чтобы ответить на ваш вопрос, struct немного быстрее. Однако это не должно иметь значения, потому что в наши дни компьютеры работают очень быстро.

1
ответ дан 28 November 2019 в 17:49
поделиться

Фокус на создании эффективной структуры данных и эффективной логики для манипулирования структурой данных. Классы C ++ по своей природе не медленнее структур типа C, поэтому не позволяйте этому ограничивать ваш дизайн.

3
ответ дан 28 November 2019 в 17:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: