Há uma matriz contendo um conjunto de dados do tipo 1,2,3,6,9,5,6,3,25,6,8,7,4 você precisa remover, por exemplo, os valores 3 e obter a mesma matriz sem 3 e espaços vazios na saída...
Procuro a maneira mais rápida de eliminar uma série de valores desnecessários.
O seguinte exemplo vem à mente
Talvez haja uma maneira mais econômica e rápida ?
ArrayResize deve ser removido dos laços, e (se estiver lutando por cada LONGO, verificar as condições e redimensionamento único no final)
Mas é meio típico tirar tudo dos laços, o que pode ser feito mais tarde a granel ou não fazer nada...
1. Reescrever array one[] em trabalho de array[] da mesma dimensão, removendo elementos desnecessários e deslocando os elementos necessários em seu lugar.
2. Reescrever o trabalho de matriz[] na matriz dois[] da nova dimensão.
HH: Remover chamada de função do operador de laço(ArraySize).int ArrayDeleteEmpty(const int del, int &one[]) { int i = ArrayBsearch(one, del), y = ArraySize(one)-1; if(one[i] != del) return 0; for(; i<y; i++) one[i] = one[i+1]; ArrayResize(one, y); return y; }
Aqui está uma variante como esta:
template<typename T> int arrayFilter(T &data[], const T value) { int dst = 0, src = 0; for(; src < ArraySize(data); src++) { if(data[src] != value) { if(dst != src) { data[dst] = data[src]; } dst++; } } if(dst < src) { ArrayResize(data, dst); // will only work with dynamic array } return dst; } void OnStart() { long array[] = {1, 2, 3, 6, 9, 5, 6, 3, 25, 6, 8, 7, 4}; ArrayPrint(array, 0, NULL, 0, arrayFilter<long>(array, 3)); }
Retorna o número de elementos da matriz filtrada. Pode reduzir automaticamente seu tamanho se for dinâmico.
Aqui está uma variante como esta:
Retorna o número de elementos da matriz filtrada. Pode reduzir automaticamente seu tamanho se for dinâmico.
Mais alguns (mais alguns diâmetros de solo) e vamos chegar à funcionalidade :-)
estabelecer meta [ filtro $source [ lambda x { expr $x !=3 } ] ]
é tcl, é ainda mais curto em lisp
A maneira mais rápida seria com ArrayCopy() e loop through em ordem inversa, de modo a não mover aqueles elementos que serão apagados.
não é adequado, pois pode haver um conjunto de estruturas contendo cordas.
Um tem 42 produtos, outro tem 6, outro tem 30. Tenho medo de imaginar que idiota há lá dentro com estas perguntas e respostas
Uma pergunta tola é uma pergunta não solicitada.
Tenho várias soluções para o problema, mas continuo procurando por melhores soluções e aprendendo com os outros.

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Há uma matriz contendo um conjunto de dados do tipo 1,2,3,6,9,5,6,3,25,6,8,7,4 você precisa remover, por exemplo, os valores 3 e obter a mesma matriz sem 3 e espaços vazios na saída...
Procuro a maneira mais rápida de eliminar uma série de valores desnecessários.
O seguinte exemplo vem à mente
Talvez haja uma maneira mais barata e rápida ?