2011-08-16 3 views
-1

dValues[]double dValues[] = {what should i input here?}という行に入力するにはどうすればよいですか?私は配列を使用しているためです。目標はモードを取得することです。ベクトルから配列に値をコピーするにはどうしたらいいですか?

#include <iostream> 
#include <vector> 
#include <numeric> 

using namespace std; 

double GetMode(double daArray[], int iSize) { 
// Allocate an int array of the same size to hold the 
// repetition count 
int* ipRepetition = new int[iSize]; 
for (int i = 0; i < iSize; ++i) { 
    ipRepetition[i] = 0; 
    int j = 0; 
    bool bFound = false; 
    while ((j < i) && (daArray[i] != daArray[j])) { 
     if (daArray[i] != daArray[j]) { 
      ++j; 
     } 
    } 
    ++(ipRepetition[j]); 
} 
int iMaxRepeat = 0; 
for (int i = 1; i < iSize; ++i) { 
    if (ipRepetition[i] > ipRepetition[iMaxRepeat]) { 
     iMaxRepeat = i; 
    } 
} 
delete [] ipRepetition; 
return daArray[iMaxRepeat]; 
} 


int main() 
{ 
int count, minusElements; 
float newcount, twocount; 
cout << "Enter Elements:"; 
std::cin >> count; 
std::vector<float> number(count); 




cout << "Enter " << count << " number:\n"; 
for(int i=0; i< count ;i++) 
{ 
    std::cin >> number[i]; 
} 

double dValues[] = {}; 
int iArraySize = count; 

std::cout << "Mode = " 
      << GetMode(dValues, iArraySize) << std::endl; 
+0

ご質問を詳しくご記入ください。 – erisco

+0

オンライン:double dValues [] = {};括弧の上に、私が入力する変数を得るためにそこに何を入力すべきですか? – John

答えて

0

私が正しく理解していれば、要素をベクターから配列にコピーしたいと考えています。はいの場合 -

float *dValues = new float[count] ; // Need to delete[] when done 
std::copy(number.begin(), number.end(), dValues); 

std::copyはアルゴリズムヘッダーにあります。しかし、なぜこのタスクのためにraw配列を使用/作成したいのですか?あなたは既にベクトルnumberを持っているだけであなたはすでにあなたのnumberベクトルのすべての値を持っているGetMode(..)

+0

私は本当に私はabot std:etc ..を理解していません。配列を使って平均値、中央値、モードを調べるだけです。 – John

2

に渡していますが、dValuesと呼ばれる新しい配列にそれらの値をコピーしたい場合は、ヒープ上にそれを割り当てる必要が、ベクトルから要素をコピーして、後で自由にそのメモリアップ(あなたはコンパイル時にサイズがわからないので):

double *dValues = new double[number.size()]; 

for (size_t i = 0; i < number.size(); i++) 
{ 
    dValues[i] = number[i]; 
} 

// whatever you need to do with dValues 

delete [] dValues; 

また、あなたがの範囲内にいることを確認していませんforループのあなたのベクトル。より安全な実装では、値をインデックスで割り当てるのではなくvectorpush_back()メソッドを使用します。

+0

皆さんに感謝します..私は今それを得ました.. – John

+0

もしそうなら、あなた有益な回答にアップ・ボートの形でクレジットを与えて、そして/または、回答を受け入れるべきです。これは、地域社会が質の高い回答をするために時間を置いた人に報酬を与える方法です。 –

関連する問題