c

C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll.
1
Antwort

C statische Inline-Parameterauswertung Optimierung

Nehmen Sie eine API an, in der jede Funktion einen Fehlercode zurückgibt, der Null ist, wenn kein Fehler vorliegt, und ungleich Null für Fehlerwerte. Lassen Sie %Vor% sind Funktionen in dieser API. Es soll ein Codefragment geben, in dem...
03.07.2016, 23:00
3
Antworten

Zeiger in einer flüchtigen Struktur in C

Sagen wir, ich habe eine Struktur %Vor% Wenn ich jetzt eine Instanz dieser Struktur als flüchtig deklariere - %Vor% Und ich verwende einen flüchtigen Zeiger, um auf diese flüchtige Struktur zuzugreifen. %Vor% Wenn ich das versuche:...
22.06.2016, 14:39
3
Antworten

Wird in öffentlichen Header-Dateien Konditionalität vorausgesetzt?

Meine C-Bibliothek hat einige optionale Funktionen, und mit automake kann der Benutzer sie ein- und ausschalten, indem er Flags zum Konfigurieren bereitstellt. Wenn ein Feature deaktiviert ist, wird diese Funktion nicht kompiliert. Meine F...
09.03.2012, 18:34
1
Antwort

Wie Hardware Prefetcher in Core i3 / i7 in Linux zu besiegen

Ich versuche einen Weg zu finden, den H / W-Prefetcher zu vereiteln, um das Stream-Muster zu erkennen und 4KB-Daten in zufälliger Reihenfolge abzurufen so dass es nicht vom H / w-Prefetcher erkannt und vorabgerufen wird. Zunächst dachte ich d...
10.08.2015, 22:48
1
Antwort

Wie sollen sich POSIX-Cancel-Punkte verhalten?

Ich habe die Implementierung der Abbruchpunkte von glibc / nptl untersucht und mit POSIX verglichen, und wenn ich mich nicht irre, ist das völlig falsch. Das verwendete Grundmodell ist: %Vor% Nach POSIX:    Die Nebeneffekte des Einwirkens...
18.11.2010, 09:18
3
Antworten

Was bedeutet __devexit in einer Funktionsdeklaration?

Ein Fahrer, den ich angeschaut habe, hat %Vor% Was bedeutet __devexit im Zusammenhang mit der Funktionsdefinition? Andere Funktionen, die ich gesehen habe, haben höchstens static und einen Rückgabetyp.     
20.06.2015, 00:05
2
Antworten

Was passiert, wenn ich eine Funktion mit einer leeren Parametertabelle deklariere und Argumente an sie weitergebe?

Zum Beispiel %Vor% Ausgabe: %Vor% Dieser Code ist gut kompiliert (ohne Warnungen mit clang) und läuft gut. Aber ich frage mich, was passiert mit den Werten, die an foo() übergeben werden? Werden sie in den Stapel geschoben oder einfac...
16.02.2016, 07:25
2
Antworten

Wie aktiviert / deaktiviert Windows 10 Akku-Schoner im Programm?

Ich schreibe ein kleines Programm, um die Batterie meines Laptops zu retten, und ich kann jetzt mit PowerSetActiveScheme zwischen Energieschemen wechseln. Der nächste Schritt besteht darin, den Energiesparmodus in Windows 10 zu steuern. Ob...
07.08.2017, 09:36
2
Antworten

Valgrind macOs und Fehler Syscall param msg-desc.port.name zeigt auf nicht initialisierte Byte (s)

Ich habe versucht, Valgrind 3.13 und 3.14 (auf MacOs 10.12.6) in einem sehr einfachen Projekt zu starten, aber ich habe einen seltsamen Fehler, den ich nie zuvor in meinem Linux bekommen habe. Sehr einfaches C-Programm main.c : %Vor%...
23.07.2017, 21:33
3
Antworten

Wie werden Vektoren, Matrizen und Datenrahmen in R implementiert? ___ tag123c ___ C ist eine universelle Computerprogrammiersprache, die für Betriebssysteme, Bibliotheken, Spiele und andere Hochleistungsanwendungen verwendet wird. Dieses Tag sollte bei allgemeinen Fragen zur C-Sprache verwendet werden, wie in der Norm ISO 9899: 2011 definiert. Fügen Sie ggf. ein versionsspezifisches Tag wie c99 oder c90 für Fragen zu älteren Sprachstandards hinzu. C unterscheidet sich von C ++ und es sollte nicht mit dem C ++ - Tag kombiniert werden, wenn ein rationaler Grund fehlt. ___ qstntxt ___

Ich habe versucht, über die verschiedenen Datenstrukturen zu lernen, die in populären Sprachen verwendet werden, wie Listen und Wörterbücher in Python, assoziative Arrays in PHP (im Wesentlichen Hash-Tabellen), Vektoren in C ++, usw.

Ich habe eine Menge Kollegen, die R religiös verwenden, und ich habe mich gefragt, wie Vektoren, Matrizen und Datenrahmen in R implementiert werden. Was sind ihre Stärken und Schwächen? Ich habe den Quellcode durchgesehen, aber ich konnte die Datenstrukturen nicht selbst finden. Wo befinden sich diese Definitionen im Quellcode?

    
___ tag123r ___ R ist eine freie, quelloffene Programmiersprache und Softwareumgebung für statistische Berechnungen, Bioinformatik, Visualisierung und allgemeine Datenverarbeitung. Stellen Sie minimale, reproduzierbare, repräsentative Beispiele für Ihre Fragen bereit. Verwenden Sie dput () für Daten und geben Sie alle Nicht-Basis-Pakete mit Bibliotheksaufrufen an. Bilder für Daten oder Code nicht einbetten, eingerückte Codeblöcke verwenden. Verwenden Sie für statistische Fragen http://stats.stackexchange.com. ___ tag123datastrukturen ___ Eine Datenstruktur ist eine Möglichkeit, Daten so zu organisieren, dass bestimmte Eigenschaften dieser Daten effizient abgefragt und / oder aktualisiert werden können. ___ answer13957361 ___

Wie bereits erwähnt, schauen Sie sich auch das Handbuch "R internals" an als diesen Teil von "Writing R extensions" .

    
___ answer41975423 ___

Ein bisschen spät, aber wollte einen Fehler mit einer der anderen Antworten aufzeigen und eine explizite Antwort geben. Sehen Sie sich das Handbuch für Internes an:

Ссылка

Lesen Sie den Anfang dieses Abschnitts und den Eintrag für 'INTSXP'. Es scheint, dass ganzzahlige Vektoren als ein Array von C int implementiert sind. Ähnlich für 'REALSXP' und 'CHARSXP'.

Die Implementierung als verknüpfte Listen wäre zu langsam gewesen.

    
___ answer13978972 ___

Von R Internals, 1.1 SEXPs:

  

... die Grundbausteine ​​von R-Objekten werden oft Knoten genannt ... Beide Typen von Knotenstrukturen haben als ihre ersten drei Felder einen 32-Bit-spxinfo-Header und dann drei Zeiger (zu den Attributen und dem vorherigen und nächsten Knoten in einer doppelt verknüpften Liste)

Daher sind Vektoren in R als doppelt verknüpfte Liste implementiert. Und es scheint sogar, dass es keine Datenstruktur gibt, die kleiner als eine verknüpfte Liste mit einem einzigen Knoten ist. Dies wird offensichtlich durch:

%Vor%

Wie von anderen erwähnt: %code% hat %code% und %code% und %code% hat die Quelle für %code% . Zusätzlich enthält %code% die Quelle für %code% und %code% enthält die Quelle für %code% .

Während viele Dinge, die sich abspielten, über meinem Kopf lagen, scheint es offensichtlich, dass eine Matrix einfach eine doppelt verknüpfte Liste doppelt verknüpfter Listen ist. Ich glaube (obwohl ich nicht sicher bin), dass Zeilen- und Spaltennamen (wie die in einem Datenrahmen gespeicherten) in den 'Attributen' jeder Liste gespeichert sind.

Die Antwort auf die "Was die Stärken und Schwächen" der Implementierung der Datenstrukturen wäre, dass (aus meinem begrenzten Wissen) doppelt verknüpfte Listen eine Stärke darin haben, dass die dynamische Speicherzuweisung einfacher ist und keinen Overhead erfordert Kopieren und Neuzuweisen eines gesamten Arrays, und die Schwäche ist, dass (abhängig davon, wie viele Zeiger auf die Liste sind: Kopf, Schwanz, Mitte, Viertel usw.) der Zugriff auf einen zufälligen Wert %code% den Overhead des Iterierens in Anspruch nehmen kann mehrere Elemente vor dem gewünschten gefunden.

Stimmt das?

    
___

Ich habe versucht, über die verschiedenen Datenstrukturen zu lernen, die in populären Sprachen verwendet werden, wie Listen und Wörterbücher in Python, assoziative Arrays in PHP (im Wesentlichen Hash-Tabellen), Vektoren in C ++, usw. Ich habe...
18.12.2012, 21:37