Size: a a a

2020 August 17

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
большой цикл, it++. По теории, в векторе это просто приращение на константу, в мапе - хождение по указателю.

На самом деле, мне больше важен доступ по (порядковому) индексу. Ситуация: скролл виртуальной гриды до 1М записи, vector получает доступ к 1M с begin() за константу, map получает доступ к 1M за O(n), это хоть и очень быстро, но заметно 😐
Расскажи ещё одну вещь: кому нужны гриды с таким огромным количеством записей?
источник

AS

Anatoly Shirokov in pro.cxx
Alex Sandrov
А нормально будет сделать так:
using tstring = string;
а потом в 20 просто в одном месте заменить это на:
using tstring = u8string;
и не переписывать весь код? 😐
но, опять же, tstring будет вносить нравственные неудобства... хочется чего-то такого, с наступлением 20:
using string = u8string;
и ничего не править, и чтоб всё было красиво в коде
ну, это норм вариант, используй везде свой string, после заменишь.
источник

AS

Alex Sandrov in pro.cxx
Ilia Zviagin
Ну, результаты тестов опубликуете?
У меня сейчас (VS2019) на vector и unorderd_map итерации на 1М по времени получились практически одинаковые.
источник

ПК

Побитый Кирпич... in pro.cxx
Alex Sandrov
А нормально будет сделать так:
using tstring = string;
а потом в 20 просто в одном месте заменить это на:
using tstring = u8string;
и не переписывать весь код? 😐
но, опять же, tstring будет вносить нравственные неудобства... хочется чего-то такого, с наступлением 20:
using string = u8string;
и ничего не править, и чтоб всё было красиво в коде
Я думаю можно сделать так чтоб не надо было код переписывать весь
источник

AS

Alex Sandrov in pro.cxx
Anatoly Shirokov
ну, это норм вариант, используй везде свой string, после заменишь.
Это не совсем красиво, потому что потом кому-то показываешь код, а там tstring 😞
источник

ПК

Побитый Кирпич... in pro.cxx
Alex Sandrov
Это не совсем красиво, потому что потом кому-то показываешь код, а там tstring 😞
Назови по другому
источник

ПК

Побитый Кирпич... in pro.cxx
string_t
источник

AS

Alex Sandrov in pro.cxx
Побитый Кирпич
Назови по другому
😊
Просто у людей будут вопросы, что это такое вообще, почему не string просто, и тд.
источник

IZ

Ilia Zviagin in pro.cxx
Alex
смысл в том, чтобы инклуды не расползались по всем .срр файлам, я принципиально не хочу включать А в main.cpp, и не понимаю, почему это нужно
Тогда создавай и удаляй этот объект только внутри файла его реализации, и всё будет ок
источник

АР

Андрей Руссков... in pro.cxx
using string_t = std::string; // to replace to std::u8string in c++20
источник

ПК

Побитый Кирпич... in pro.cxx
Alex Sandrov
А нормально будет сделать так:
using tstring = string;
а потом в 20 просто в одном месте заменить это на:
using tstring = u8string;
и не переписывать весь код? 😐
но, опять же, tstring будет вносить нравственные неудобства... хочется чего-то такого, с наступлением 20:
using string = u8string;
и ничего не править, и чтоб всё было красиво в коде
Тут кстати будут проблемы потом с литералами, если их немного то можно потом их изменить, а если много, то нужен макрос
источник

ПК

Побитый Кирпич... in pro.cxx
Alex Sandrov
😊
Просто у людей будут вопросы, что это такое вообще, почему не string просто, и тд.
У каких людей?
источник

AS

Anatoly Shirokov in pro.cxx
Alex Sandrov
Это не совсем красиво, потому что потом кому-то показываешь код, а там tstring 😞
пиши сразу u8string, заалиасив его на std::string
источник

AS

Alex Sandrov in pro.cxx
Побитый Кирпич
Тут кстати будут проблемы потом с литералами, если их немного то можно потом их изменить, а если много, то нужен макрос
я везде пишу так: TEXT("sometext")
и тоже страдаю от этого 😑
источник

ПК

Побитый Кирпич... in pro.cxx
Побитый Кирпич
Тут кстати будут проблемы потом с литералами, если их немного то можно потом их изменить, а если много, то нужен макрос
Хотя нет, я погнал, они ж сломали литералы в 20
источник

ПК

Побитый Кирпич... in pro.cxx
Можно просто u8"str";
источник

AS

Alex Sandrov in pro.cxx
Anatoly Shirokov
пиши сразу u8string, заалиасив его на std::string
Хм, хороший вариант, спасибо
источник

ПК

Побитый Кирпич... in pro.cxx
Побитый Кирпич
Можно просто u8"str";
И это будет работать при смене типа
источник

ПК

Побитый Кирпич... in pro.cxx
Так что макросы не нужны, уже плюс
источник

АР

Андрей Руссков... in pro.cxx
я так полагаю если какие-то либы принимают const std::string& начнется треш
источник