Если вы хотите сохранить все элементы только один раз , вы можете использовать STL set в c++
(примервыполнение этого в c
также дано ниже).Хранит значение не более одного раза.Вы можете объявить set следующим образом:
set<int>sett;
Чтобы вставить значение в set
sett.insert(6);
Чтобы напечатать все значения внабор:
for(auto a: sett){
cout<<a<<endl;
}
Вы можете перейти на веб-сайт geekforgeek и cplusplus для получения дополнительной информации.
Если вы хотите отслеживать число в массиве или нет, вы можете сделать это эффективно следующим образом:
Возьмите Boolean Array или Карта и установите начальное значение false
.После сканирования из файла, если число равно N, сделайте N-й индекс Boolean Array или Map true
.
Теперь, если вы хотите проверить число M в массиве или нет.Вы можете легко получить это, проверив, является ли индекс Mth логического массива или карты true
или нет всего за O (1) раз.
См. Пример ниже, это делается с использованием логического массива.Не забудьте объявить логический массив глобально, если размер логического массива слишком велик.Вы можете сделать это, используя STL Map тоже в c++
.Чтобы узнать больше о SLT MAP , посетите cplusplus , cppreference , geeksforgeeks .
#include <stdio.h>
#include <stdbool.h>
bool mapp[999999999] = {false};
int main()
{
int i, n, t, m, ara[1000];
printf("Input the size of array: ");
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%d", &ara[i]);
mapp[ara[i]] = true;
}
printf("Input number of time you want to check a number in array or not: ");
scanf("%d", &t);
while(t--){
scanf("%d", &m);
if(mapp[m] == true)
printf("Number Exists\n");
else
printf("Number Not Exists\n");
}
}
Вы также можете использоватьэтот трюк, чтобы не включать повторяющиеся значения в массиве.Для этого, если введенное число - «а».Проверьте, помечен ли mapp[a]
как true
или нет.Включить 'a' только в массив и только если mapp[a] != ture
.Это небольшое изменение исключит все повторяющиеся значения из вашего массива.
scanf("%d", &n);
j = 0;
for(i = 0; i < n; i++){
scanf("%d", &a);
if(mapp[a] != true){
mapp[a] = true;
ara[j++] = a;
}
}