Директива #include: относительно где?

Ваши данные CSV должны быть в правильном формате. Есть несколько ненужных пробелов, которые затрудняют анализ, поскольку он включает пробелы в именах заголовков, на основании которых он сохраняет имена свойств в объектах.

cpu-util.csv должно быть

Computer_ID,timestamp,value,Percentage
1,01-07-11 0:00,0.8,8

. Кроме того, d3.js анализирует данные, сохраняя метки заголовков. поэтому массив computerid должен быть заполнен с использованием свойства Computer_ID данных. Таким образом, ваш код должен выглядеть примерно так:

<script>
   var timestamp = [],
       computerid = [],
       percentage = [];

 d3.csv("cpu-util.csv", function(data) {
   console.log(data); //see the data structure
    for (var i = 0; i < data.length; i++) {
        timestamp[i] = data[i].timestamp; //use the property names.
        computerid[i] = data[i].Computer_ID; 
        percentage[i] = data[i].Percentage;
        console.log(computerid[i]);
        console.log(timestamp[i]);
        console.log(percentage[i]);
    }
     console.log(computerid[0]); //this will appear as it is within the function and 
                                 //the array is filled by the time this line is run
  });

  console.log(computerid[0]); //this will be undefined due to the asynchronous nature of javascript. 
                              //This line of code runs before the for loop within the function
</script>

Если вы видите журнал консоли, console.log(computerid[0]) появится первым в журнале, а не перед тремя другими в функции, из-за асинхронного характера javascript. Есть способы, с помощью которых вы можете объединить функции в синхронные функции, используя Async / Await или Promises.

Также d3.js анализирует всю информацию как строки. Поэтому числовые значения, такие как Percentage, необходимо преобразовать в числовые типы данных с помощью функции. Просто имейте это в виду.

41
задан Brian Tompsett - 汤莱恩 4 June 2016 в 14:48
поделиться

5 ответов

26
ответ дан Community 27 November 2019 в 00:53
поделиться

Это и относительно текущего исходного файла и к любым данным путям поиска (-I для gcc).

9
ответ дан Ignacio Vazquez-Abrams 27 November 2019 в 00:53
поделиться

Это зависит, на каком синтаксисе Вы используете в #include директиве:

#include "path-spec"
#include <path-spec>

Заключенная в кавычки форма: Эта форма сообщает, что препроцессор для поиска включает файлы в тот же каталог файла, который содержит #include оператор, и затем в каталогах любых файлов, которые включают (#include) тот файл. Препроцессор затем ищет вдоль пути, указанного/I параметром компилятора, затем вдоль путей, указанных ВКЛЮЧАТЬ переменной среды.

Форма угловой скобки: Эта форма сообщает, что препроцессор для поиска включает файлы сначала вдоль пути, указанного/I параметром компилятора, затем, при компиляции из командной строки, вдоль пути, указанного ВКЛЮЧАТЬ переменной среды.

Спецификация пути является именем файла, которому дополнительно предшествует спецификация каталога. Имя файла должно назвать существующий файл. Синтаксис спецификации пути зависит от операционной системы, в которой компилируется программа.

Эта информация должна быть в документации для Вашей определенной Ссылки Препроцессора C++, вышеупомянутое взято от этой статьи о MSDN, который имеет больше на предмете.

7
ответ дан Peter McG 27 November 2019 в 00:53
поделиться

Полный путь поиска может зависеть от компилятора. Для Visual Studio документация указывает что это:

(...) сообщает, что препроцессор для поиска включает файлы в тот же каталог файла, который содержит #include оператор, и затем в каталогах любых файлов, которые включают (#include) тот файл. Препроцессор затем ищет вдоль пути, указанного/I параметром компилятора, затем вдоль путей, указанных ВКЛЮЧАТЬ переменной среды.

2
ответ дан cgmb 27 November 2019 в 00:53
поделиться

Его реализация определяется. Те #include "my_dir/xxy.hpp" на файле (например, foo.h) относительно файла (foo.h, и my_dir был бы на том же уровне в иерархии каталогов). С некоторыми (большинство?) компиляторы, можно использовать флаг для использования их <> (#include

Я знаю, что gcc / g ++ обеспечивает флаг-I. Таким образом, Вы могли использовать g ++-I / домой [...] указание, что xxy.hpp файл расположен в/home/my_dir/каталоге. Я не использовал никакой другой компилятор C/C++ в некоторое время теперь.

1
ответ дан Tom 27 November 2019 в 00:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: