Я должен изучить C++ на основе нового или старого стандарта (спецификация)?

Я думаю, что вы могли бы улучшить дизайн, сохраняя эти идентификаторы в другой таблице по одному идентификатору на строку со ссылкой на внешний ключ table_name.primary_key.

Также хранение данных Array в виде текстовых строк кажется странным.

В любом случае, вот один из способов сделать это: я обернул набор, возвращенный UNNEST, внутренним подвыбором, чтобы иметь возможность применить функцию aggregate_function, необходимую для повторного объединения строк.

UPDATE table_name 
SET ids = new_ids
FROM LATERAL (
    SELECT primary_key, array_agg(elem)::text AS new_ids
    FROM (SELECT DISTINCT primary_key, UNNEST(ids::text[]) as elem 
          FROM table_name ) t_inner  
          GROUP by primary_key )t_sub  
WHERE t_sub.primary_key = table_name.primary_key
6
задан Adam Rosenfield 14 May 2009 в 19:34
поделиться

5 ответов

My recommendation is to start out in the middle. Start with C++03, but check the features and C++0x libs that some compilers are already offering each so often. As of now, C++03 is THE standard (not only formally, but most code you will find will be strictly C++03).

Now, if you intend on learning go for the best: start quickly with STL basics and jump into Boost libraries right away. Learn templates the whole way, read on metaprogramming. Modern C++03 usage will get you right on track for C++0x.

12
ответ дан 8 December 2019 в 05:57
поделиться

Изучите старый стандарт C ++ 03. C ++ 0X все еще находится в паре лет (по крайней мере) от даже ратификации в качестве стандарта. После стандартизации потребуется время, прежде чем появятся какие-либо соответствующие реализации, поддерживающие все его функции, и потребуется еще больше времени, прежде чем реализации C ++ 0X станут значительно популярны и часто используются.

6
ответ дан 8 December 2019 в 05:57
поделиться

На мой взгляд, изучение C ++ 03 более практично. Если вы не против изучения новых функций, но можете использовать частичное в течение нескольких лет, лучше подойдет C ++ 0x. Хорошая новость - новая версия g ++ и vc ++ 2010 уже реализовали части новых функций c ++ 0x.

2
ответ дан 8 December 2019 в 05:57
поделиться

Изучение новых возможностей C ++ 0x - это отличный способ узнать больше о C ++ 03 в деталях, потому что вы видите, как работает C ++ 03, проблемы с ним и что предлагает C ++ 0x для решения этих проблем.

Я недавно узнал об этом опыте. о новых ссылках rvalue и семантике перемещения. В C ++ 03 существует много ненужного временного создания и копирования в выражениях, поэтому изучение того, почему в C ++ 03 возникает эта проблема и как C ++ 0x решает эту проблему, было довольно поучительным и информировало меня в текущих разработках C ++.

1
ответ дан 8 December 2019 в 05:57
поделиться

Пройдет несколько лет, прежде чем компиляторы C ++ 0x станут обычным явлением. Так что на данный момент у вас нет особого выбора. Изучите C ++ 03, и тогда вы сможете изучать новые вещи отдельно, когда придет время. Принципиальные различия не так уж велики. 0x в основном связан с добавлением новых функций и обобщением и упрощением существующих функций. Знание C ++ 03 по-прежнему применимо.

1
ответ дан 8 December 2019 в 05:57
поделиться
Другие вопросы по тегам:

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