我有一个函数可以抓取给定数组中的不同数字。我将不同的数字存储在另一个数组中,但我想访问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返回一个(稀有数字的)向量。或者,如果你想对它们进行排序,一套。 –