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

Массив, индекс как уникальный ID - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Настройка Clion + OpenCV http://www.cyberforum.ru/cpp-beginners/thread1492181.html
Уважаемые, форумчане...беда!) Установил свеженькую среду Clione под виндой и теперь никак не могу разобраться как грамотно подключить OpenCV. Скачал exe установщик. Он все распаковал и выглядит это примерно так Полагая что готовые сборки мне не подойдут решил, что скорее всего необходимо все собирать с помощью CMake
C++ Важность очередности при подключении библиотеки GL/glut.h Всем привет. Пытаюсь вывести в заголовок угол поворота фигуры а он выдает вот такую ошибку: 1>------ Построение начато: проект: рисуем, Конфигурация: Debug Win32 ------ 1> рисунок.cpp 1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\stdlib.h(360): error C2381: exit: переопределение; __declspec(noreturn) отличается 1> c:\program files (x86)\microsoft visual... http://www.cyberforum.ru/cpp-beginners/thread1492166.html
Передача функции из одного класса в функцию другого C++
Здравствуйте уважаемые форумчане. Возникла некоторая проблема. Долго пытался выкрутиться сам, но в итоге решил обратиться к профессионалам. Ситуация следующая. Имется класс, в котором определена функция: class Task{ private: int a; public: double Func(double x){
Ошибка 2 error LNK2019, не пойму в чем ошибка C++
Выдает такую ошибку: Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ "int __cdecl game(void)" (?game@@YAHXZ) в функции. Исходник прилагается. Спасибо за внимание.#include <stdio.h> #include <stdlib.h> #include <time.h> #include <windows.h> #include <conio.h> #include <ctype.h> #include <iostream> using namespace std;
C++ Определить разность между суммой элементов c четными индексами и суммой элементов, индексы которых кратны трем http://www.cyberforum.ru/cpp-beginners/thread1492115.html
Дан массив вещественных чисел Z (16). Определить разность между суммой элементов c четными индексами и суммой элементов, индексы которых кратны трем
C++ Как найти точки пересечения двух синусоид? Есть две синусоиды вида: y = a + b*sin(c*x + d) a,b,c,d - постоянные. x - в заданном интервале, допустим от -10 до +10. Нужно найти все точки пересечения. Подскажите, как их найти? (решите за меня уравнение и дайте финальный результат в символьном виде) :D подробнее

Показать сообщение отдельно
Valeryn
41 / 25 / 5
Регистрация: 17.05.2015
Сообщений: 163
03.07.2015, 08:27     Массив, индекс как уникальный ID
Добрый день.
Пытаюсь сделать список, который хранит в себе список всех обьектов. У этого списка есть поле - ID. По идеи оно должно быть уникальным. Но вот вопрос. При создании массива, стоит ли использовать индекс, как уникальный ID?

Class
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
#include <string>
#include <thread>
#include <chrono>
#include "entity.h"
 
struct item {
    int &ID;
    position &pos;
    std::string &title;
    
};
 
class object_list
{
private:
    item * list;
    int top;
public:
    object_list();
    ~object_list();
 
    bool push(int &ID, position &pos, std::string &title);
    bool del_item(int ID);
};
функция.
C++
1
2
3
4
5
6
7
8
9
10
11
12
bool object_list::push(int &ID, position &pos, std::string &title) {
    for (int i = 0; i <= top; i++) {
        if (list[i].ID == ID) {
            return false;
        }
    }
    list[top].ID = ID;
    list[top].pos = pos;
    list[top].title = title;
    top++;
    return true;
}
Что если сделать так?:
C++
1
2
3
4
5
6
bool object_list::push(int ID, position &pos, std::string &title) {
    if (list[ID] != NULL) return false;
    list[ID].pos = pos;
    list[ID].title = title;
    return true;
}
Но т.к. массив выделяется с помощью new, боюсь если ID будут иметь пятизначный вид - будет много памяти жрать.

Сейчас делаю подобие стака, но после каждого удаления объекта - идет сортировка массива. (Сдвиг, что бы занять свободное пространство)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru