Результаты поиска
Разгрузка ByteArray используя Actionscript 3
Как я могу принудительно выгрузить ByteArray из памяти с помощью ActionScript 3?
Я попробовал следующее:
// First non-working solution
byteArray.length = 0;
byteArray = new ByteArray();
// Second non-working solution
for ( var i:int=0; i < byteArray.length; i++ ) {
byteArray[i] = null;
}
Как лучше всего создать тег cloud из массива, используя h1-h6 для определения размера?
У меня есть следующие массивы:
$artist = array("the roots", "michael jackson", "billy idol", "more", "and more", "and_YET_MORE");
$count = array(5, 3, 9, 1, 1, 3);
Я хочу сгенерировать тег cloud, который будет содержать исполнителей с более высоким числом в $count , вложенных в h6 тегов, и с самым низким вложенным h1 тегов.
Использование 'in' для сопоставления атрибута объектов Python в массиве
Я не помню, спал я или нет, но я, кажется, помню, что была функция, которая позволяла что-то вроде,
foo in iter_attr(array of python objects, attribute name)
Я просмотрел документы, но такие вещи не подпадают ни под какие очевидные заголовки списка
PHP: доступ к значению массива на лету
В php мне часто приходится сопоставлять переменную с помощью массива ... но я не могу, кажется, быть в состоянии сделать это в одном лайнере. c.f. образец:
// the following results in an error:
echo array('a','b','c')[$key];
// this works, using an unnecessary variable:
$variable = array('a','b','c');
echo $variable[$key];
Это небольшая проблема, но она продолжает беспокоить время от времени ... Мне не нравится тот факт, что я использую переменную просто так ;)
PHP: доступ к значению массива на лету
В php мне часто приходится сопоставлять переменную с помощью массива ... но я не могу, кажется, быть в состоянии сделать это в одном лайнере. c.f. образец:
// the following results in an error:
echo array('a','b','c')[$key];
// this works, using an unnecessary variable:
$variable = array('a','b','c');
echo $variable[$key];
Это небольшая проблема, но она продолжает беспокоить время от времени ... Мне не нравится тот факт, что я использую переменную просто так ;)
Замена для for... при итерации массива
Я люблю понимание списка в Python, потому что они лаконично представляют собой преобразование списка.
Однако на других языках я часто ловлю себя на том, что пишу что-то вроде::
foreach (int x in intArray)
if (x > 3) //generic condition on x
x++
//do other processing
Этот пример находится в C#,, где я под впечатлением LINQ может помочь с этим, но есть ли какая-то общая программная конструкция, которая может заменить это слегка less-than-elegant решение? Возможно, структура данных, которую я не рассматриваю?
Как ранжировать массив (Сортировать) по значению? *With в twist*
Я хотел бы отсортировать массив в порядке возрастания, используя C/C++ . Результатом является массив, содержащий индексы элементов. Каждый индекс соответствует расположению элемента в отсортированном массиве.
Пример
Input: 1, 3, 4, 9, 6
Output: 1, 2, 3, 5, 4
Edit: я использую процедуру сортировки shell. Индексы повторяющихся значений выбираются произвольно, исходя из того, какие повторяющиеся значения являются первыми в исходном массиве.
Обновление:
Несмотря на все мои усилия, я не смог реализовать алгоритм сортировки для массива указателей. Текущий пример не будет компилироваться.
Может, кто-нибудь объяснит мне, что случилось?
Я был бы очень признателен за помощь!
void SortArray(int ** pArray, int ArrayLength)
{
int i, j, flag = 1; // set flag to 1 to begin initial pass
int * temp; // holding variable orig with no *
for (i = 1; (i <= ArrayLength) && flag; i++)
{
flag = 0;
for (j = 0; j < (ArrayLength - 1); j++)
{
if (*pArray[j + 1] > *pArray[j]) // ascending order simply changes to <
{
&temp = &pArray[j]; // swap elements
&pArray[j] = &pArray[j + 1]; //the problem lies somewhere in here
&pArray[j + 1] = &temp;
flag = 1; // indicates that a swap occurred.
}
}
}
};
Можно ли использовать новое размещение для массивов переносным способом?
Можно ли на самом деле использовать размещение нового в переносимом коде при использовании его для массивов?
Похоже, что указатель, который вы получаете от new[], не всегда совпадает с адресом, который вы передаете (5.3.4, Примечание 12 в стандарте, кажется, подтверждает, что это правильно), но я не вижу, как вы можете выделить буфер для массива, чтобы войти в него, если это так.
В следующем примере показана проблема. Скомпилированный с помощью Visual Studio, этот пример приводит к повреждению памяти:
#include <new>
#include <stdio.h>
class A
{
public:
A() : data(0) {}
virtual ~A() {}
int data;
};
int main()
{
const int NUMELEMENTS=20;
char *pBuffer = new char[NUMELEMENTS*sizeof(A)];
A *pA = new(pBuffer) A[NUMELEMENTS];
// With VC++, pA will be four bytes higher than pBuffer
printf("Buffer address: %x, Array address: %x\n", pBuffer, pA);
// Debug runtime will assert here due to heap corruption
delete[] pBuffer;
return 0;
}
Глядя на память, компилятор, похоже, использует первые четыре байта буфера для хранения подсчета количества элементов в нем. Это означает, что поскольку буфер имеет только sizeof(A)*NUMELEMENTS размер, последний элемент массива записывается в нераспределенную кучу.
Итак, вопрос в том, Можете ли вы узнать, сколько дополнительных накладных расходов требуется вашей реализации для безопасного использования placement new[]? В идеале мне нужна техника, переносимая между разными компиляторами. Обратите внимание, что, по крайней мере, в случае VC, накладные расходы, похоже, отличаются для разных классов. Например, если я удаляю виртуальный деструктор в Примере, то адрес, возвращаемый из new[], совпадает с адресом, который я передаю.
Как я могу отсортировать массив двойных указателей на основе значений, на которые они указывают?
Я пытаюсь построить функцию в C/C++ для сортировки массива и замены каждого значения на его "score" или ранг. Он принимает массив двойных указателей к массиву ints и сортирует двойные указатели на основе разыменованного значения целых чисел. Я пробовал довольно много раз, чтобы заставить его работать, но не могу получить его вниз. Еще раз, он должен сортировать двойные указатели на основе значений, на которые они указывают. Вот что у меня есть:
void SortArray( int ** pArray, int ArrayLength )
{
int i, j, flag = 1; // set flag to 1 to begin initial pass
int * temp; // holding variable orig with no *
for(i = 1; (i <= ArrayLength) && flag; i++)
{
flag = 0;
for (j = 0; j < (ArrayLength -1); j++)
{
if (*pArray[j+1] > *pArray[j]) // ascending order simply changes to <
{
temp = &pArray[j]; // swap elements
pArray[j] = &pArray[j+1];
pArray[j+1] = &temp;
flag = 1; // indicates that a swap occurred.
}
}
}
}
Как split байтовый массив
У меня есть массив байтов в памяти, считанный из файла. Я хотел бы split байтовый массив в определенной точке (индекс) без необходимости просто создавать новый байтовый массив и копировать каждый байт за один раз, увеличивая в памяти отпечаток ноги операции. Чего бы мне хотелось, так это что-то вроде этого:
byte[] largeBytes = [1,2,3,4,5,6,7,8,9];
byte[] smallPortion;
smallPortion = split(largeBytes, 3);
smallPortion будет равно 1,2,3,4
largeBytes будет равно 5,6,7,8,9
Как сравнить два массива объектов DataRow в PowerShell?
У меня есть два массива объектов System.Data.DataRow , которые я хочу сравнить.
Строки имеют два столбца A и B. столбец A является ключом, и я хочу узнать, какие строки были изменены в столбце B, а какие строки были добавлены или удалены.
Как это сделать в PowerShell?
Как суммировать размеры массива, заданного во время выполнения?
Я работаю над функцией для установления энтропии распределения. Он использует связку, если кто-то знаком с этим. Мне нужно суммировать значения в массиве, основываясь на том, какие измерения являются "cared about."
Пример: рассмотрим следующий пример...
Dimension 0 (across) _ _ _ _ _ _ _ _ _ _ _ _ _ |_ 0 _|_ 0 _|_ 0 _|_ 2 _| Dimension 1 |_ 1 _|_ 0 _|_ 2 _|_ 0 _| (down) |_ 0 _|_ 3 _|_ 0 _|_ 6 _| |_ 0 _|_ 0 _|_ 0 _|_ 0 _| I "care about" dimension 0 only, and "don't care" about the rest (dim 1). Summing this array with the above specifications will "collapse" the "stacks" of dimension 1 down to a single 4 x 1 array: _ _ _ _ _ _ _ _ _ _ _ _ _ |_ 1 _|_ 3 _|_ 2 _|_ 8 _| This can then be summed, or have any operation performed.
Мне нужно сделать это с массивом 'n' измерений, которые могли бы реально be 20. Кроме того, мне нужно быть в состоянии сделать это, заботясь о некоторых размерах и разрушая rest. Мне особенно трудно с этим, потому что я не могу визуализировать 20 измерений :p . Если бы кто-нибудь мог помочь мне настроить некоторый код c/c++ на collapse/sum,, я был бы очень благодарен.
Обновление:
Только что вернулся домой. Вот некоторая информация, чтобы ответить на ваши вопросы:
- Извините за откат правок, я надеялся, что когда я нажму откат, он покажет мне изменения, чтобы я мог увидеть, что я испортил, немного похоже на Википедию. Как я выяснил, это был не тот случай.
- @jeff-что не имеет смысла? Я использую этот отличный сервис для (что я думаю) законной причины. Я хочу стать лучше в своем хобби, которое все это, как я в средней школе. Многие из моих сообщений касаются реализации генетического алгоритма (этот пост, sparsearray, ранжирование массива, манипуляция указателем).
- Я использую разреженное представление массива, поскольку можно превысить количество молекул во Вселенной, используя традиционный (плотный) массив. На данный момент реализация самого sparsearray не имеет большого значения, поскольку я работаю над тем, чтобы заставить его работать со стандартным массивом, прежде чем перейти к разреженному представлению. Для тех, кто не видел мои предыдущие вопросы, я использую двоичное дерево поиска в качестве структуры, содержащей разреженные точки массива, и функцию "driver" для обхода дерева по мере необходимости, возвращая все, что функция предназначена для выполнения. Это является гибким, так что я могу разместить много различных методов доступа к массиву.
- Структура является гиперкубом, и количество измерений задается во время выполнения, а также длина каждого измерения (которые все одинаковы, так как это гиперкуб).
Спасибо всем за ваше вменение.
Классы против массивов 2D
Что лучше использовать в PHP, массиве 2D или классе? Я включил пример того, что я имею в виду под этим.
// Using a class
class someClass
{
public $name;
public $height;
public $weight;
function __construct($name, $height, $weight)
{
$this -> name = $name;
$this -> height = $height;
$this -> weight = $weight;
}
}
$classArray[1] = new someClass('Bob', 10, 20);
$classArray[2] = new someClass('Fred', 15, 10);
$classArray[3] = new someClass('Ned', 25, 30);
// Using a 2D array
$normalArray[1]['name'] = 'Bob';
$normalArray[1]['height'] = 10;
$normalArray[1]['weight'] = 20;
$normalArray[2]['name'] = 'Fred';
$normalArray[2]['height'] = 15;
$normalArray[2]['weight'] = 10;
$normalArray[3]['name'] = 'Ned';
$normalArray[3]['height'] = 25;
$normalArray[3]['weight'] = 30;
Предполагая, что кто-то не выйдет и не покажет, что классы слишком медленные, похоже, что класс выигрывает.
Я не знаю, какой ответ я должен принять, чтобы я только что проголосовал за них всех.
И теперь я написал две почти идентичные страницы, одну с использованием массива 2D (написанного до публикации этого вопроса), а теперь один использует класс, и я должен сказать, что класс производит гораздо более приятный код. Я понятия не имею, сколько накладных расходов будет сгенерировано, но я сомневаюсь, что это будет конкурировать с улучшением самого кода.
Спасибо, что помогли мне стать лучшим программистом.
Как я могу объединить массивы PHP?
У меня есть два массива животных (например).
$array = array(
array(
'id' => 1,
'name' => 'Cat',
),
array(
'id' => 2,
'name' => 'Mouse',
)
);
$array2 = array(
array(
'id' => 2,
'age' => 321,
),
array(
'id' => 1,
'age' => 123,
)
);
Как я могу объединить два массива в один с помощью ID?
Как бы вы реализовали хэш-таблицу в языке x?
Смысл этого вопроса состоит в том, чтобы собрать список примеров реализации хэш-таблиц с использованием массивов на разных языках. Было бы также неплохо, если бы кто-то мог дать довольно подробный обзор того, как они работают, и что происходит с каждым примером.
Редактировать :
Почему бы просто не использовать встроенные функции hash в вашем конкретном языке?
Потому что мы должны знать, как работают таблицы hash и уметь их реализовывать. Это может показаться не очень важной темой, но знание того, как работает одна из наиболее часто используемых структур данных, кажется мне очень важным. Если это должно стать Википедией программирования, то вот некоторые из типов вопросов, за которыми я сюда приду. Я не ищу книгу CS, которая будет написана здесь. Я мог бы взять с полки вступление к алгоритмам и прочитать главу о таблицах hash и получить такую информацию. Более конкретно, то, что я ищу, - это примеры кода . Не только для меня в частности, но и для других, кто, возможно, однажды будет искать подобную информацию и наткнется на эту страницу.
Если бы вы должны были их реализовать и не могли использовать встроенные функции, как бы вы это сделали?
Вам не нужно ставить код здесь. Положите его в пастебин и просто соедините его.
Итерация по сложному ассоциативному массиву в PHP
Есть ли простой способ перебрать ассоциативный массив этой структуры в PHP:
Массив $searches имеет нумерованный индекс, содержащий от 4 до 5 ассоциативных частей. Поэтому мне нужно не только перебирать $searches[0] через $searches[n], но и $searches[0]["part0"] через $searches[n]["partn"] . Трудная часть заключается в том, что разные индексы имеют разное количество частей (некоторые могут отсутствовать один или два).
Мысли о том, чтобы сделать это так, чтобы это было приятно, аккуратно и понятно?
Печать многомерных массивов .NET
Допустим, у меня есть .NET-массив из n измерений. Я хотел бы foreach через элементы и распечатать что-то вроде:
[0, 0, 0] = 2
[0, 0, 1] = 32
И так далее. Я мог бы написать цикл, используя некоторые функции ранга и измерения, чтобы придумать индексы. Есть ли встроенная функция вместо этого?
Сравнение массивов объектов в JavaScript
Я хочу сравнить 2 массива объектов в коде JavaScript. Объекты имеют 8 общих свойств, но каждый объект не будет иметь значения для каждого, и массивы никогда не будут больше 8 элементов каждый, так что, возможно, метод грубой силы обхода каждого и затем просмотра значений 8 свойств является самым простым способом сделать то, что я хочу сделать, но перед реализацией я хотел бы посмотреть, есть ли у кого-нибудь более элегантное решение. Есть какие-нибудь мысли?
Как сдвинуть массив байтов на 12 бит
Я хочу сдвинуть содержимое массива байт на 12 бит влево.
Например, начиная с этого массива типа uint8_t shift[10] :
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xBC}
Я бы хотел сдвинуть его влево на 12 бит, что приведет к:
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAB, 0xC0, 0x00}
Ruby-преобразование целого числа в строку
В Ruby попытка распечатать отдельные элементы строки доставляет мне проблемы. Вместо того, чтобы видеть каждый символ, я вижу их значения ASCII вместо этого:
>> a = "0123"
=> "0123"
>> a[0]
=> 48
Я посмотрел в интернете, но не могу найти никакого способа, чтобы получить оригинал "0" обратно из него. Я немного новичок в Ruby, чтобы знать, что это должно быть что-то простое, но я просто не могу его найти.