Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
A New York HP ha messo al centro della scena HP IQ, la piattaforma di IA locale da 20 miliardi di parametri. L’abbiamo vista in funzione: è uno strumento che funziona, pensato per un target specifico, con vantaggi reali e limiti altrettanto evidenti
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
La PNY GeForce RTX 5080 Slim OC si distingue nel panorama delle GPU di fascia alta per il design compatto a due slot, ispirato alla NVIDIA GeForce RTX 5080 Founders Edition. In questo test analizziamo comportamento termico e prestazioni in gioco, valutando se il formato ridotto comprometta o meno l'esperienza complessiva rispetto alle soluzioni più ingombranti presenti sul mercato.
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-10-2017, 17:31   #1
F4b10_01
Junior Member
 
Iscritto dal: Oct 2017
Messaggi: 1
[c++] Ordinare vector con posizioni fissate.

Ho un vettore in input contenente interi positivi e interi uguali a "-1".
Devo ordinare il vettore lasciando inalterate le posizioni in cui il vettore risuta "-1".

Esempio:
input: [-1, 150, 190, 170, -1, -1, 160, 180]
output: [-1, 150, 160, 170, -1, -1, 180, 190]

Ovviamente so come ordinare un vettore (sia mediante algoritmi vari, sia mediante funzioni da stl), ma non so/capisco come fare a lasciare inalterate le posizioni a "-1".
Suggerimenti?
Grazie.
F4b10_01 è offline   Rispondi citando il messaggio o parte di esso
Old 07-10-2017, 19:30   #2
Keyser70
Member
 
Iscritto dal: Oct 2009
Città: Santarcangelo di Romagna
Messaggi: 44
Dipende dall'efficienza che vuoi ottenere e dalla memoria a disposizione.
Supponiamo che il tuo sia un array e non uno std::vector, ma la cosa diventa ancora più semplice in tal caso.

Se non hai problemi di memoria puoi usare un set e poi sostituire i valori nel vettore originale.
Il set, nelle applicazioni reali, è velocissimo.

static const size_t size=8;
int v[size] = {-1, 150, 190, 170, -1, -1, 160, 180};

std::set<int> ordered;

for( int i = 0; i < 8; i++)
if( v[i]!=-1)
ordered.insert(v[i]);
// adesso ordered contiene [150, 160, 170, 180]

std::set<int>::iterator it = ordered.begin();
for( int i = 0; i < 8; i++)
if( v[i]!=-1)
v[i] = (*it);
// adesso v contiene [-1, 150, 160, 170, -1, -1, 180, 190]

Se invece la memoria è un problema puoi guardare qui (in inglese).

Ultima modifica di Keyser70 : 07-10-2017 alle 19:31. Motivo: formattazione aggiornata
Keyser70 è offline   Rispondi citando il messaggio o parte di esso
Old 08-10-2017, 22:50   #3
Marcus Aseth
Senior Member
 
Iscritto dal: Apr 2008
Messaggi: 648
una cosa del genere?
Codice:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;

template<typename T>
using Iter = typename vector<T>::iterator;

template<typename V>
using value_type = typename V::value_type;

template<typename T>
struct Skip {
	T condition;
	Skip(T t) :condition{ t } {};
	template<typename T> bool operator()(T t) { return condition != t; }
};

template<typename Iter>
void sort_if(Iter Begin, Iter End,
			 function<bool(value_type<Iter>)> Condition,
			 function<bool(value_type<Iter>, value_type<Iter>)> Pred);

template<typename T>
void Print(vector<T>);

int main()
{
	vector<int> VecI{ -1, 150, 190, 170, -1, -1, 160, 180 };
	vector<string> VecS{ "casa","libro","zzz","pianta","zzz","zzz","auto" };

	sort_if(VecI.begin(), VecI.end(), Skip<int>(-1), less<int>());
	sort_if(VecS.begin(), VecS.end(), Skip<string>("zzz"), less<string>());

	Print(VecI);
	Print(VecS);
}

template<typename Iter>
void sort_if(Iter Begin, Iter End,
			 function<bool(value_type<Iter>)> Condition,
			 function<bool(value_type<Iter>, value_type<Iter>)> Pred)
{
	for (auto First = Begin; First != End; First++)
	{
		for (auto Second = First + 1; Second != End; Second++)
		{
			if ((Condition(*First)) && (Condition(*Second)))
			{
				if (!Pred(*First, *Second)) {
					iter_swap(First, Second);
				}
			}
		}
	}
}

template<typename T>
void Print(vector<T> Vec)
{
	for (auto&n : Vec) {
		cout << n << "  ";
	}
	cout << endl;
}
__________________
----------------------------------------------------------------------
Grafico 3d | 3ds max 2011--Zbrush--Photoshop
----------------------------------------------------------------------

Ultima modifica di Marcus Aseth : 09-10-2017 alle 06:35.
Marcus Aseth è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Hacker iraniani di Handala violano la Gm...
Chi è Eddie Dalton: il cantante d...
OVHcloud mette l'Italia al centro della ...
Zeekr 007 GT sold out in Cina, si passa ...
Hisense QLED 4K da 98'' e 85'' con 144Hz...
Reolink Solar Floodlight: la nuova video...
Fiber to the Office, sicurezza cyber e f...
Stop improvviso per la serie TV di Tomb ...
Geely unifica R&D tra Svezia e Germania:...
Antec e Noctua insieme: nasce il Flux Pr...
L'Unione Europea contro le app che gener...
Quale sarà il prezzo di PS6? Indi...
Economico, potente e capiente: l'archite...
La Hongguang Mini EV è impossibil...
Wi-Fi 7 in ogni angolo di casa: FRITZ!Re...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v