Пример про сортировку сотрудников абсолютно неверный. После первой сортировки вы получите список сотрудников отсортированный по отделам:
Alice from Accounting, Salary: 50000 Diana from Accounting, Salary: 55000 Bob from HR, Salary: 45000 Eve from HR, Salary: 48000 Charlie from IT, Salary: 70000 Frank from IT, Salary: 52000
Вторая сортировка просто отсортирует весь список по зарплатам. А вовсе не по "затем сортируем внутри каждой группы по убыванию зарплаты...". В вашем коде группы по отделам никак не учитываются, вывод будет вот такой:
Charlie from IT, Salary: 70000 Diana from Accounting, Salary: 55000 Frank from IT, Salary: 52000 Alice from Accounting, Salary: 50000 Eve from HR, Salary: 48000 Bob from HR, Salary: 45000
Чтобы сделать то, что вы хотели нужно написать одну сортировку с более сложным условием:
std::stable_sort(employees.begin(), employees.end(),
[](const Employee& a, const Employee& b)
{ if (a.department == b.department)
return a.salary > b.salary;
else
return a.department < b.department; });
Ну и в целом статья вообще ни о чем: сначала пишете про std::sort, в примере std::stable_sort. Хоть бы пояснили в чем разница.
Если на ваших курсах по C++ примерно такой же формат, то толку от них, наверное, не много.
К сожалению, на сегодняшний день большинство западных вендоров CAD-систем ушли из России. Поэтому очень многие предприятия просто вынуждены переходить на отечественные CAD-системы. А свои многолетние разработки в том же Inventor/NX/CATIA и т.д. терять совсем не хочется. И превращать их просто в "набор сплайнов" это конечно плохая идея, но какие варианты?
В идеале, все что было спроектировано в другой CAD-системе нужно просто пересоздать в Компасе. Компас - такая же параметрическая система, как и CATIA (ну может не с таким полным набором возможностей, но все же). Понятно, что это физически невозможно, объем работы при таком ручном подходе - неподъемный. Мы поэтому и разработали наш конвертер, который делает это полностью автоматически.
Если ваше предприятие планирует по тем или иным причинам переходить с западной CAD-системы на отечественную, то надо понимать, что есть несколько вариантов:
Использовать встроенный в Компас конвертер. Получить в итоге твердотельную модель без истории построения (со всеми сложностями связанными со сборками, исполнениями и т.д.). Эти модели потом использовать в своих новых изделиях в Компасе. Их можно уже дальше редактировать средствами самого Компаса, но в таком случае придется еще полностью пересоздать чертеж (вообще с нуля).
Попробовать наш конвертер. Получить на выходе полноценную параметрическую модель Компаса с историей построения и полностью ассоциативный чертеж. Понятно, что не все 100% моделей исходной CAD-системы могут быть построены в Компасе аналогичным деревом построения. Функциональность CAD-систем отличается, и это надо учитывать. Но по результатам нашего тестирования и отзывов пользователей, мы успешно конвертируем порядка 75% исходных моделей. А остальные требуют некоторого ручного вмешательства.
И то, и то не является полностью идеальным решением. Но такого решения и не существует даже теоретически. Поэтому надо понимать, что процесс перехода предприятия на другую CAD-систему - это совсем не просто. Но, к сожалению, в текущей ситуации никуда от этого не деться.
Наверное, на это ответит автор статьи, но в-общем, ничего не поменялось.
В результате открытия файла другой CAD-системы вы получаете просто твердотельную модель без истории построения. В ней не будет вспомогательной геометрии, резьбы и т.д. В сборках не будет связей между компонентами и геометрии обработки в контексте сборки. Работа с исполнениями никак не поддерживается. Т.е. каждое исполнение - это просто отдельный новый документ в Компасе. И даже атрибутивная информация (обозначение, наименование, материал и т.д.) тоже не передается. Что и подтверждается этой статьей. И кстати, огромное количество ранее созданных ассоциативных чертежей тоже совсем не хочется пересоздавать вручную. Это огромная и неподъемная работа.
Т.е. такой вариант работы возможен в простых случаях, когда нужно просто использовать сторонние модели деталей или простых сборок. Тем не менее, понятно, что в существующих реалиях вопрос перехода на отечественную CAD-систему, и в частности на Компас, для многих предприятий стоит очень остро. Вариант такого решения предлагает компания ИНТЕРМЕХ.
Мы разработали конвертер, который анализирует исходную модель, получает ее историю построения в исходной CAD-системе, а затем формирует такое же дерево построения в Компасе. Т.е. наш конвертер как бы "перерисовывает" модель в Компасе, только делает это полностью автоматически. На выходе получается полноценная параметрическая модель, которую можно легко редактировать, в которой поддерживаются исполнения и т.д. И это касается как деталей, так и сборок.
И чертежи мы тоже умеем конвертировать. Вначале в Компас конвертируется 3D-модель, а потом по ней создается ассоциативный чертеж. При этом на нем автоматически формируются все те виды, все элементы оформления (размеры, шероховатости, технические требования и т.д.), которые были на исходном чертеже.
Более полную информацию по данному конвертеру и его возможностям вы можете найти на нашем сайте. А также, не так давно вышла подробная статья о нем на Изикаде.
Вы бы хоть примеры корректные писали...
Пример про сортировку сотрудников абсолютно неверный. После первой сортировки вы получите список сотрудников отсортированный по отделам:
Alice from Accounting, Salary: 50000
Diana from Accounting, Salary: 55000
Bob from HR, Salary: 45000
Eve from HR, Salary: 48000
Charlie from IT, Salary: 70000
Frank from IT, Salary: 52000
Вторая сортировка просто отсортирует весь список по зарплатам. А вовсе не по "затем сортируем внутри каждой группы по убыванию зарплаты...". В вашем коде группы по отделам никак не учитываются, вывод будет вот такой:
Charlie from IT, Salary: 70000
Diana from Accounting, Salary: 55000
Frank from IT, Salary: 52000
Alice from Accounting, Salary: 50000
Eve from HR, Salary: 48000
Bob from HR, Salary: 45000
Чтобы сделать то, что вы хотели нужно написать одну сортировку с более сложным условием:
Ну и в целом статья вообще ни о чем: сначала пишете про std::sort, в примере std::stable_sort. Хоть бы пояснили в чем разница.
Если на ваших курсах по C++ примерно такой же формат, то толку от них, наверное, не много.
К сожалению, на сегодняшний день большинство западных вендоров CAD-систем ушли из России. Поэтому очень многие предприятия просто вынуждены переходить на отечественные CAD-системы. А свои многолетние разработки в том же Inventor/NX/CATIA и т.д. терять совсем не хочется. И превращать их просто в "набор сплайнов" это конечно плохая идея, но какие варианты?
В идеале, все что было спроектировано в другой CAD-системе нужно просто пересоздать в Компасе. Компас - такая же параметрическая система, как и CATIA (ну может не с таким полным набором возможностей, но все же). Понятно, что это физически невозможно, объем работы при таком ручном подходе - неподъемный. Мы поэтому и разработали наш конвертер, который делает это полностью автоматически.
Если ваше предприятие планирует по тем или иным причинам переходить с западной CAD-системы на отечественную, то надо понимать, что есть несколько вариантов:
Использовать встроенный в Компас конвертер. Получить в итоге твердотельную модель без истории построения (со всеми сложностями связанными со сборками, исполнениями и т.д.). Эти модели потом использовать в своих новых изделиях в Компасе. Их можно уже дальше редактировать средствами самого Компаса, но в таком случае придется еще полностью пересоздать чертеж (вообще с нуля).
Попробовать наш конвертер. Получить на выходе полноценную параметрическую модель Компаса с историей построения и полностью ассоциативный чертеж. Понятно, что не все 100% моделей исходной CAD-системы могут быть построены в Компасе аналогичным деревом построения. Функциональность CAD-систем отличается, и это надо учитывать. Но по результатам нашего тестирования и отзывов пользователей, мы успешно конвертируем порядка 75% исходных моделей. А остальные требуют некоторого ручного вмешательства.
И то, и то не является полностью идеальным решением. Но такого решения и не существует даже теоретически. Поэтому надо понимать, что процесс перехода предприятия на другую CAD-систему - это совсем не просто. Но, к сожалению, в текущей ситуации никуда от этого не деться.
Наверное, на это ответит автор статьи, но в-общем, ничего не поменялось.
В результате открытия файла другой CAD-системы вы получаете просто твердотельную модель без истории построения. В ней не будет вспомогательной геометрии, резьбы и т.д. В сборках не будет связей между компонентами и геометрии обработки в контексте сборки. Работа с исполнениями никак не поддерживается. Т.е. каждое исполнение - это просто отдельный новый документ в Компасе. И даже атрибутивная информация (обозначение, наименование, материал и т.д.) тоже не передается. Что и подтверждается этой статьей. И кстати, огромное количество ранее созданных ассоциативных чертежей тоже совсем не хочется пересоздавать вручную. Это огромная и неподъемная работа.
Т.е. такой вариант работы возможен в простых случаях, когда нужно просто использовать сторонние модели деталей или простых сборок. Тем не менее, понятно, что в существующих реалиях вопрос перехода на отечественную CAD-систему, и в частности на Компас, для многих предприятий стоит очень остро. Вариант такого решения предлагает компания ИНТЕРМЕХ.
Мы разработали конвертер, который анализирует исходную модель, получает ее историю построения в исходной CAD-системе, а затем формирует такое же дерево построения в Компасе. Т.е. наш конвертер как бы "перерисовывает" модель в Компасе, только делает это полностью автоматически. На выходе получается полноценная параметрическая модель, которую можно легко редактировать, в которой поддерживаются исполнения и т.д. И это касается как деталей, так и сборок.
И чертежи мы тоже умеем конвертировать. Вначале в Компас конвертируется 3D-модель, а потом по ней создается ассоциативный чертеж. При этом на нем автоматически формируются все те виды, все элементы оформления (размеры, шероховатости, технические требования и т.д.), которые были на исходном чертеже.
Более полную информацию по данному конвертеру и его возможностям вы можете найти на нашем сайте. А также, не так давно вышла подробная статья о нем на Изикаде.