#c #vector
#c #вектор
Вопрос:
Это часть кода (заголовок и основная часть):
#include <iostream>
#include <sstream>
#include <string>
#include <glGL.h>
#include <glGLU.h>
#include <glut.h>
#include <RassHost.h>
#include <apiiomap.h>
#include <apiiotrans.h>
#include <apicgeometry.h>
#include <vector>
using namespace std;
int main()
{
cout << "Enter IP: " << endl;
getline(cin, server_ip);
enum(KEY_L = 'A', KEY_R = 'D', KEY_RUN = 'WW', KEY_JUMP='SPACE');
typedef OBJECT_3D_SYS_TYPES_NUM OBJECT3D_RCN_TYPE;
OBJECT3D_RCN_TYPE _psyObjects[][] = getPsyhicsPartObjects();
vector<OBJECT3D_RCN_TYPE> _objects;
//I would like to load _psyObjects[][] into vector<OBJECT3D_RCN_TYPE> _objects;
Server::StartGame(Server::getIP(), 8888, "-r run", false);
system("pause");
return 0;
}
Возможно ли скопировать _psyObjects
значения в vector<OBJECT3D_RCN_TYPE>
?
Я хочу управлять многомерным массивом с помощью векторного api, если это возможно.
Спасибо!
Комментарии:
1. Вектор является одномерным, но ничто не мешает вам иметь вектор векторов, если вам действительно нужен двумерный массив … извините, не могу предоставить достойный фрагмент кода, не зная больше о типах, которые вы здесь используете.
Ответ №1:
Вам нужно будет создать вектор векторов:
vector< vector<OBJECT3D_RCN_TYPE> > _objects;
Затем просто заполните его как обычный вектор.
Я бы опубликовал больше кода, но вам нужно знать размеры массива, а я не вижу их в коде.
Ответ №2:
Вы также могли бы использовать Boost::multi_array
. Этот API похож на std::vector
‘s, но, возможно, достаточно похож, чтобы удовлетворить ваши потребности.