Вопросы с тегом 'struct'

Ключевое слово в различных языках программирования, синтаксис которых аналогичен или получен из C (C ++, C #, Swift, Go и т. д.). Используйте специальный тег языка программирования, чтобы помечать вопросы, связанные с использованием «структуры», поскольку синтаксис и семантика могут быть зависимыми от языка. Ключевое слово определяет или объявляет тип данных, состоящий из других типов данных. Каждый член структуры имеет свою собственную область памяти (в отличие от «союза», члены которого разделяют единую область памяти).
4
ответа

Цикл в структуре структуры, которая не существует

Это упрощенная версия некоторого кода: public struct info { public float a, b; public info? c; public info(float a, float b, info? c = null) { this.a = a; this.b = b; this.c = c; } } Проблема з...
задан 15.02.2012 в 16:33
3
ответа

golang - как инициализировать поле карты внутри структуры?

Я смущен лучшим способом инициализации структуры, содержащей карту. Запуск этого кода вызывает panic: runtime error: assignment to entry in nil map : package main type Vertex struct { label string } type Graph struct { connections m...
задан 18.12.2014 в 19:35
10
ответов

Как проверить, была ли создана структура?

У меня есть структура, которая (для целей этого вопроса) в значительной степени имитирует встроенный тип Point . Мне нужно проверить, что он был создан, прежде чем использовать его. Когда это было Point , я мог бы сделать это: if (this...
задан 01.10.2012 в 14:39
9
ответов

___ qstntxt ___

У меня есть массив структур в ColdFusion. Я хотел бы отсортировать этот массив на основе одного из атрибутов в структурах. Как я могу это достичь? Я нашел функцию StructSort, но она принимает структуру, и у меня есть массив.

Если это невозможно в ColdFusion, возможно ли это в Java (возможно, используя %code% )?

    
___ answer11355631 ___

Вы можете использовать библиотеку Underscore.cfc , чтобы выполнить то, что вы хотите:

%pre%

Underscore.cfc позволяет определить пользовательский компаратор и делегировать команду arraySort (). Вы можете использовать его для сортировки массивов, структур, запросов или строковых списков, но он всегда возвращает массив.

(Отказ от ответственности: я написал Underscore.cfc)

    
___ answer13018601 ___

Я хотел бросить здесь свои два цента. Я столкнулся с ситуацией, когда мне нужно было отсортировать массив структур, используя более одного ключа. Я закончил с помощью построенного запроса, чтобы выполнить сортировку. Функция принимает массив структур как первый аргумент, а затем массив структур, указывающий порядок сортировки, например:

%pre%

В функции sortArrayOfStructsUsingQuery я создаю запрос, основанный только на ключах, которые я передаю, затем сортирую этот запрос. Затем, перейдя по запросу, найдите элемент структуры из массива, который соответствует данным в текущей строке запроса, и добавьте эту структуру в массив, который я передаю.

Вполне возможно, что в этом коде есть зияющая дыра, которую мое тестирование не обнаружило (пока у меня не было много вариантов использования), но в случае, если это полезно кому-то, вот оно. Надеюсь, это полезно, и если есть какие-то яркие дыры, я рад услышать о них.

(просто примечание: я использую «локальную» область видимости для всех переменных, которые останутся в функции, и область «r» для чего-либо, на что я намереваюсь отступить, за все, что стоит)

%pre%     
___ answer2653972 ___

Вот что-то, что очень напоминает оригинальный %code% . Он также поддерживает аргумент %code% .

%pre%

Использование / тест:

%pre%

Результат:

    
___ answer33168856 ___

Вот UDF, основанный на ответе Томалака, который также поддерживает пользовательские объекты (например, используемые некоторыми CMS на основе Railo). Эта функция совместима с ColdFusion 9.

%pre%     
___ answer3376038 ___

Принятое решение (из CFLib.org) НЕ безопасно. Я экспериментировал с этим для чего-то, что мне нужно было сделать на работе, и обнаружил, что он возвращает неверные результаты при сортировке числовых с поплавками.

Например, если у меня есть эти структуры: (псевдокод)

%pre%

Перейдите по отсортированному массиву и напечатайте имя & amp; вес. Это не будет в правильном порядке, и это ограничение смешивания произвольный ключ со отсортированным значением.

    
___ answer2655087 ___

Если вы не хотите использовать пользовательские методы, Coldfusion имеет метод structSort Ссылка . Да, он сортирует структуру с вложенными структурами, BUT возвращает массив, поэтому его можно использовать для достижения того же результата.

    
Полагаю, что ___ commmment2670619 ___ «ключи» должны быть расширены. ___ answer19235249 ___

Это действительно проще с новой поддержкой CF Closure.

Вот пример, над которым я работал сегодня, когда я хотел отсортировать массив структур по дате, хранящейся в структуре. Я сортировал в порядке убывания.

%pre%

Я не могу взять общий кредит, так как я адаптировал это из Ray Camden's Closures с 2012 года.

    
___ commmment2670652 ___ @Edward: Абсолютно, я пропустил это. Спасибо за подсказку. ___ answer47720126 ___

У меня нет точек репутации для комментариев в сообщении @ mikest34 выше, но @russ был прав, что этот обратный вызов больше не работает так, как он был объяснен.

Именно Адам Кэмерон обнаружил, что при использовании arraySort с обратным вызовом он больше не требует ответа True / False, а скорее:

  

-1, если первый параметр «меньше», чем второй параметр
   0, если первый параметр равен второму параметру
   1, первый параметр «больше», чем второй параметр

Таким образом, правильный обратный вызов:

%pre%

Тестирование и работа в CF2016

    
___ answer2653879 ___

Как обычно, CFLib.org имеет именно то, что вы хотите.

Ссылка

%pre%     
___ commmment20014488 ___ Хорошая информация для обмена, но поскольку вы не предлагаете альтернативное решение, это должно быть в комментарии к этому ответу. Вы могли бы поместить образец кода в gist / pastebin / etc, чтобы он поместился. ___ commmment70852163 ___ Многие другие ответы здесь зависят от функции обратного вызова arraySort () (добавляется в CF10) или функции члена sort () (добавляется в CF11). Ответ Томалака работает, по крайней мере, на CF9, который мне все еще нужно поддерживать. Спасибо, Томалак! ___ commmment28471114 ___ Или функция (a, b) {return (a.struct_date

У меня есть массив структур в ColdFusion. Я хотел бы отсортировать этот массив на основе одного из атрибутов в структурах. Как я могу это достичь? Я нашел функцию StructSort, но она принимает структуру, и у меня есть массив. Если это невозмож...
задан 16.04.2010 в 16:45
9
ответов

Почему структуры NSRect, NSPoint и т. д., а не классы?

Мне недавно нужно было создать свой собственный тип, похожий на NSRect, который имеет опорную точку (по существу, NSRect с другим NSPoint в ней). После некоторых research Я обнаружил, что на самом деле мне, вероятно, было бы лучше сделать...
задан 06.04.2015 в 09:20
6
ответов

Как правильно исправить «нулевой размер массива в struct / union» предупреждение (C4200) без нарушения кода?

Я интегрирую некоторый код в свою библиотеку. Это сложная структура данных, хорошо оптимизированная для скорости, поэтому я стараюсь не изменять ее слишком сильно. Процесс интеграции идет хорошо и фактически почти закончен (он компилируется). Ме...
задан 28.07.2010 в 09:46
4
ответа

Когда целесообразно использовать массив ячеек против структуры в Matlab?

Если я хочу хранить некоторые строки или матрицы разных размеров в одной переменной, я могу представить два варианта: я мог бы создать массив структур и иметь одно из полей, содержащих данные, structArray(structIndex).structField , или я м...
задан 03.09.2010 в 15:00
4
ответа

Является ли листинг массива однородной структурированной переносимой в C?

Рассмотрим следующую однородную структуру: struct myStruct { void* a; char* b; int* c; }; Я считаю, что это однородно, потому что все типы данных являются указателями. С учетом этой структуры следующий код будет действитель...
задан 21.03.2017 в 08:01
7
ответов

Передача структур в качестве аргументов при использовании pthread_create ()

Я попытался передать структуру в качестве 4-го аргумента при использовании pthread_create() с чем-то вроде этого: pthread_create(&tid1, NULL, calca, &t); //t is the struct Теперь, когда я пытаюсь получить доступ к переменным в...
задан 14.05.2009 в 17:15
4
ответа

скрыть параметрический конструктор на struct

Можно ли скрыть конструктор без параметров от пользователя в c # Я хочу заставить их всегда использовать конструктор с параметрами например. этот класс позиции public struct Position { private readonly int _xposn; private readon...
задан 11.02.2009 в 04:40