我有一個函數可以抓取給定數組中的不同數字。我將不同的數字存儲在另一個數組中,但我想訪問getUncommon
以外的不同數字,以便我可以進行一些比較和排序。在C++中訪問函數外部的陣列
如果沒有在C++中使用全局變量,這可能嗎?
#include <iostream>
using namespace std;
void getUncommon(int* iAry, int size) {
const int size2 = 10;
int* tmpAry = new int[size2];
int totalCount[size2] = { 0 };
int currentCount[size2] = { 0 };
int totalUncommon = 0;
int i, j;
int rareDigits[size2] = { 0 };
for (i = 0; i < size; i++) {
tmpAry[i] = iAry[i];
if (tmpAry[i] < 0)
tmpAry[i] *= -1;
for (j = 0; j < size2; j++)
currentCount[j] = 0;
if (tmpAry[i] == 0) {
currentCount[0] = 1;
}
while (tmpAry[i]/10 != 0 || tmpAry[i] % 10 != 0){
currentCount[tmpAry[i] % 10] = 1;
tmpAry[i] /= 10;
}
for (j = 0; j < size2; j++) {
totalCount[j] += currentCount[j];
}
}
for (i = 0; i < size2; i++) {
if (totalCount[i] == 1) {
totalUncommon++;
}
}
cout << "Total of uncommon digits: " << totalUncommon << endl
<< "Uncommon digits:\n";
if (totalUncommon == 0) {
cout << "\nNo uncommon digits found.";
}
else {
for (i = 0; i < size2; i++) {
if (totalCount[i] == 1) {
cout << i << endl;
rareDigits[i] = totalCount[i];
}
}
}
return;
}
int getNumRareDigits(int x) {
// I would like to access rareDigits
// so that I can pass in an integer
// and see if it contains rareDigits[i] to
// find the total number of rare digits.
}
int main(){
int* my_arry;
int size;
int i;
cout << "How many integers? ";
cin >> size;
for (i = 0; i < size; i++) {
cout << "Enter values #" << i << " : ";
cin >> size;
}
cout << "\nThe original array:" << endl;
for (i = 0; i < size; i++) {
cout << my_arry[i] << endl;
}
cout << "\nCalling function -\n" << endl;
getUncommon(my_arry, size);
return 0;
}
如何訪問rareDigits[i]
外getUncommon
?
「我在[另一個數組[A]中存儲了另一個數組[A']中不同的數字,但我想訪問外部數字** ['A'或'B'?] ** 'foo()',這樣我就可以做一些比較和排序。「 –
1.使用全局變量或2.在main()中定義rareDigits,然後將其傳遞給其他函數。 –
我的建議 - 簡單地從getUncommon返回一個(稀有數字的)向量。或者,如果你想對它們進行排序,一套。 –