468 Stimmen

Vektor in Array umwandeln

Wie konvertiere ich eine std::vector<double> zu einer double array[] ?

15voto

Vektoren sind quasi Arrays unter der Haut. Wenn Sie eine Funktion haben:

void f( double a[]);

können Sie es so nennen:

vector <double> v;
v.push_back( 1.23 )
f( &v[0] );

Sie sollten niemals einen Vektor in eine tatsächliche Array-Instanz umwandeln müssen.

5voto

Toby Punkte 337
std::vector<double> vec;
double* arr = vec.data();

4voto

rashedcs Punkte 3145

Wir können dies mit der Methode data() tun. C++11 bietet diese Methode.

Code-Schnipsel

#include<bits/stdc++.h>
using namespace std;

int main()
{
  ios::sync_with_stdio(false);

  vector<int>v = {7, 8, 9, 10, 11};
  int *arr = v.data();

  for(int i=0; i<v.size(); i++)
  {
    cout<<arr[i]<<" ";
  }

  return 0;
}

1voto

Wenn Sie eine Funktion haben, dann brauchen Sie das wahrscheinlich: foo(&array[0], array.size()); . Wenn Sie es geschafft haben, in eine Situation zu kommen, in der Sie ein Array benötigen, dann müssen Sie umstrukturieren, Vektoren sind im Grunde erweiterte Arrays, Sie sollten sie immer verwenden.

-2voto

Sakthi Vignesh Punkte 1

Sie können etwa so vorgehen

vector <int> id;
vector <double> v;

if(id.size() > 0)
{
    for(int i = 0; i < id.size(); i++)
    {
        for(int j = 0; j < id.size(); j++)
        {
            double x = v[i][j];
            cout << x << endl;
        }
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X