Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Транслит, С++ 
:(
    Опции темы
Alca
Дата 19.1.2010, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50



Цитата

если уж выбирать между size_t и std::string::size_type то пусть будет второе.

почему?


--------------------
PM WWW ICQ Skype Jabber   Вверх
zim22
Дата 19.1.2010, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Alca @  19.1.2010,  11:31 Найти цитируемый пост)
почему?

потому что длина строки представлена типом std::string::size_type, а не size_t
например, size_t может был слишком мал и не способен вместить в себя длину самой длинной строки. 



--------------------
PM MAIL   Вверх
Alca
Дата 19.1.2010, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50



std::string::size_type это unsigned int?



--------------------
PM WWW ICQ Skype Jabber   Вверх
azesmcar
Дата 19.1.2010, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(Alca @  19.1.2010,  12:52 Найти цитируемый пост)
std::string::size_type это unsigned int?

зависит от алокатора.
PM   Вверх
zim22
Дата 19.1.2010, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Alca @  19.1.2010,  11:52 Найти цитируемый пост)
std::string::size_type это unsigned int?

в том то и прикол, что тип std::string::size_type не фиксирован, а выбирается (компилятором?) так, чтобы вмещать максимальный размер строки.

Это сообщение отредактировал(а) zim22 - 19.1.2010, 12:56


--------------------
PM MAIL   Вверх
Alca
Дата 19.1.2010, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50



//xmemory (VS 2008)
Код

#ifndef _FARQ    /* specify standard memory model */
 #define _FARQ
 #define _PDFT    ptrdiff_t
 #define _SIZT    size_t
#endif /* _FARQ */
...
typedef _SIZT size_type;


Добавлено @ 12:59
Цитата

что тип std::string::size_type не фиксирован, а выбирается (компилятором?) 

zim22, ясно

Это сообщение отредактировал(а) Alca - 19.1.2010, 12:59


--------------------
PM WWW ICQ Skype Jabber   Вверх
azesmcar
Дата 19.1.2010, 12:59 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(zim22 @  19.1.2010,  12:55 Найти цитируемый пост)
а выбирается (компилятором?) 

Код

namespace std {
template<class charT, class traits = char_traits<charT>,
class Allocator = allocator<charT> >
class basic_string {
public:
// types:
typedef traits traits_type;
typedef typename traits::char_type value_type;
typedef Allocator allocator_type;
typedef typename Allocator::size_type size_type;
...

Цитата

X::size_type - a type that can represent the size of the largest object in the allocation model.


Добавлено @ 13:05
Цитата(zim22 @  19.1.2010,  12:39 Найти цитируемый пост)

потому что длина строки представлена типом std::string::size_type, а не size_t

в случае с default allocator-ом один фиг, там size_type как size_t определен и по любому он использует оператор new, Который принимает std::size_t.

Это сообщение отредактировал(а) azesmcar - 19.1.2010, 13:05
PM   Вверх
lonevagrant
Дата 19.1.2010, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 2.7.2009

Репутация: нет
Всего: нет



Вродь сохранил в cp-1251.
Не работает.
PM MAIL   Вверх
bsa
Дата 19.1.2010, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



lonevagrant, а что у тебя собственно не работает? Конкретно описать можешь?
Кстати, попробуй первой строчкой функции main() выполнить: setlocale(LC_ALL, "");
PM   Вверх
andrew_121
Дата 19.1.2010, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



все работает. только что в венде проверил.

Добавлено через 52 секунды
Цитата(bsa @  19.1.2010,  16:06 Найти цитируемый пост)
Кстати, попробуй первой строчкой функции main() выполнить: setlocale(LC_ALL, ""); 

а зачем? прога же латыницу выводит.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
andrew_121
Дата 19.1.2010, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



кстати функции translit(), в идеале, нужно передавать массив вдвое длиннее ее контента.

Добавлено через 47 секунд
а еще лучше, переписать это дело на с++ smile


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0533 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.