2016-02-24 3 views
-4

У меня есть переменная Vertex; Как назначить данные и получить данные из Vertex? Я знаю один способ присвоить значение, создав одну временную переменную, а затем Vertex.push_back (temp). Есть ли какой-либо направленный метод для назначения и получения данных?Как получить доступ к данным из вектора вектора double

vector<vector<double>> Vertex; 
vector<double> temp; 
Vertex.push_back(temp); //Any other direct method? 
+0

попытка поиск в Интернете для таких вещей: «Любой прямой метод» http://www.cplusplus.com/reference/vector/vector/ –

+0

Как это не прямо? Что вы ожидаете? – songyuanyao

+0

Я не хочу использовать временную переменную (если возможно). –

ответ

0
vector<vector<double>> Vertex; 
    for(int i=1; i<n; i++) 
    { 
     Vertex.resize(i); 
     Vertex[i-1].push_back(11); 
    Vertex[i-1].push_back(112); 
    std::cout<<Vertex[i-1][0]<<Vertex[i-1][1]; 
    } 
+0

Может кто-нибудь подскажет мне, как изменить приведенный выше код, если Vertex является указателем. вектор <вектор > * Вершина; –

0

Вы ищете emplace_back?

vector<vector<double>> Vertex; 
Vertex.emplace_back(); 

//or 

Vertex.emplace_back(100, 1.0); //Creates new vector of 100 doubles initialized with 1.0 
+0

Я хочу назначить координаты x, y, z из 5 вершин в вершине. –

+0

@SunilSingh 'emplace_back' перенаправляет аргументы в конструктор' value_type'. Если вы знаете, с каким конструктором вы имеете дело, вы можете это сделать. –

2

Учитывая, что у вас нет пространства между >>, я полагаю, с помощью C++ 11 это нормально? Если это так, вы можете использовать списки инициализации, например.

#include <iostream> 
#include <vector> 

int main() 
{ 
    std::vector<std::vector<double>> Vertex; 
    Vertex.push_back({1.0,2.0,3.0}); 
    Vertex.push_back({4.5,2.5,0.5}); 

    std::cout << Vertex[0][1] << '\n' // prints '2' 
       << Vertex[1][2] << '\n'; // prints '0.5' 
} 
+0

Показывает ошибку (ожидается выражение). Vertex.push_back ({1.0,2.0,3.0}); Vertex.push_back ({4.5.2.5,0.5}); –

Смежные вопросы