Sto cercando di imparare i modelli e mi sono imbattuto in questo errore di confusione. Sto dichiarando alcune funzioni in un file di intestazione e voglio creare un file di implementazione separato in cui verranno definite le funzioni. Ecco il codice che chiama l’intestazione (dum.cpp): #include #include #include #include “dumper2.h” int main() { std::vector v; […]
Ultimamente mi è stato chiesto di scrivere una funzione che legge il file binario nello std::vector dove BYTE è un unsigned char . Abbastanza rapidamente sono arrivato con qualcosa del genere: #include #include typedef unsigned char BYTE; std::vector readFile(const char* filename) { // open the file: std::streampos fileSize; std::ifstream file(filename, std::ios::binary); // get its size: […]
Potrei risolvere questo usando loop, ma sto cercando di pensare in vettori, quindi il mio codice sarà più R-esque. Ho una lista di nomi. Il formato è firstname_lastname. Voglio uscire da questa lista in una lista separata con solo i primi nomi. Non riesco a pensare a come farlo. Ecco alcuni dati di esempio: t […]
Ciao ho fatto una domanda oggi su Come inserire diversi tipi di oggetti nella stessa matrice vettoriale e il mio codice in quella domanda era gate* G[1000]; G[0] = new ANDgate() ; G[1] = new ORgate; //gate is a class inherited by ANDgate and ORgate classs class gate { ….. …… virtual void Run() { […]
Sto scrivendo un’estensione Matlab usando la libreria ublas di C ++, e mi piacerebbe essere in grado di inizializzare i miei vettori ublas dai C array passati dall’interpeter Matlab. Come posso inizializzare il vettore ublas da un array C senza (per motivi di efficienza) copiando esplicitamente i dati. Sto cercando qualcosa lungo le seguenti righe […]
ciao quando si ha un vector var; for(int i=0; i< var.size();i++) , la funzione size() chiamata ogni volta o solo una volta? dalle risposte credo sia meglio usare iteratori, o semplicemente avere variabili prima del ciclo
Lo standard C ++ sembra non rilasciare dichiarazioni riguardo gli effetti collaterali sulla capacità di resize(n) , con n < size() o clear() . Fa una dichiarazione sul costo ammortizzato di push_back e pop_back – O (1) Posso immaginare un’implementazione che faccia il solito tipo di modifiche di capacità agli algoritmi CLRS (es. Raddoppiare quando […]
Stavo cercando di creare un vettore di lambda, ma ho fallito: auto ignore = [&]() { return 10; }; //1 std::vector v; //2 v.push_back([&]() { return 100; }); //3 Fino alla riga n. 2, compila bene . Ma la riga 3 dà errore di compilazione : errore: nessuna funzione di matching per la chiamata a […]
iterator insert ( iterator position, const T& x ); È la dichiarazione di funzione dell’operatore di inserimento della class std::Vector . Il tipo di ritorno di questa funzione è un iteratore che punta all’elemento inserito. La mia domanda è, dato questo tipo di ritorno, qual è il modo più efficace (questo fa parte di un […]
Ci sono state alcune domande riguardo a questo problema prima; la mia comprensione è che chiamare std::vector::erase invaliderà solo gli iteratori che si trovano in una posizione dopo l’elemento cancellato. Tuttavia, dopo aver cancellato un elemento, l’iteratore in quella posizione è ancora valido (a patto, ovviamente, che non punta a end() dopo la cancellazione)? La […]