Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

Открыть новую тему     Написать ответ в эту тему

Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопросы по программированию на C/С++

 
  • Справочники, книги
  • Выбор IDE (среды программирования)
     
    Постарайтесь дать как можно больше информации о возникшей проблеме - это в конце концов в ваших же интересах чтобы вам помогли.

    Решения конкретных задач собираются и обсуждаются в теме Задачи по C/С++ .

    Прежде чем просить помощи в задании...
    Если позарез надо и вы даже готовы заплатить

    Как правильно задавать вопросы, если вы хотите получить ответ.

    Полезные ссылки:
    C++(eng)

  • Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 13:37 06-05-2004 | Исправлено: AZJIO, 19:45 12-05-2014
    lYY

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    Спасибо, помогло, разобрался!

    Всего записей: 138 | Зарегистр. 22-07-2004 | Отправлено: 16:19 10-09-2009
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    akaGM

    Цитата:
    ну и дурак этот программист,

    Ага.

    Цитата:
    а компилятор должен давать варнинг типа "type mismatching: char <--> wchar_t"  
    и генерить что следует...  

    А он и даёт, только не варнинг, а еррор.

    Цитата:
    имхо

    Стандарт C++ имеет другое имхо.
    2.13.4  String literals

    Цитата:
    A string literal is a sequence of characters (as defined in 2.13.2) surrounded by double quotes, optionally
    beginning with the letter L, as in "..."or L"...".  A string literal that does not begin with Lis an ordi-
    nary string literal, also referred to as a narrow string literal.  An ordinary string literal has type “array of n
    const char” and static storage duration (3.7), where n is the size of the string as defined below, and is
    initialized with the given characters.  A string literal that begins with L, such as L"asdf", is a wide string
    literal.  A wide string literal has type “array of n const wchar_t” and has static storage duration, where
    n is the size of the string as defined below, and is initialized with the given characters.
     
    4.2  Array-to-pointer conversion

    Цитата:
    A string literal (2.13.4) that is not a wide string literal can be converted to an rvalue of type “pointer  to
    char”; a wide string literal can be converted to an rvalue of type “pointer to wchar_t”.  In either case,
    the result is a pointer to the first element of the array.


    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 17:08 10-09-2009
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    ну как-то так я себе это и представлял...

    Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 17:48 10-09-2009
    Rootless_Wanderer



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, как работать с юникодом и MySQL API в С++ (gcc).
    То есть я делаю что-то вроде row = mysql_fetch_row(res), как мне потом из MYSQL_ROW законвертить в std::wstring или что-то вроде этого? Как потом этот std::wstring обратно засунуть в базу? Очень нужна помощь по этому вопросу!

    Всего записей: 105 | Зарегистр. 17-12-2003 | Отправлено: 12:16 14-09-2009 | Исправлено: Rootless_Wanderer, 13:25 14-09-2009
    Aleksoid1978



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос такой - можно либо в коде, либо в свойствах проекта(VS 2008) указать что программа будет использовать не более 2-х ядер, не важно что их в системе больше.
     
    Просто юзаю ConEmu+Far, так вот мало того что сам ConEmu запускается и выставляется автоматом только 2 ядра из 4, так и все проги которее потом запускаешь из под Фара - тоже тока 2 ядра(смотрим через TaskManager).
     
    Вот здесь живет сам ConEmu - http://code.google.com/p/conemu-maximus5/
    там и бинарники есть, и исходники.

    ----------
    AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9225 | Зарегистр. 11-05-2006 | Отправлено: 05:12 25-09-2009
    Aleksoid1978



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Все, вопрос снимается, нашел причину ... SetProcessAffinityMask();

    ----------
    AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9225 | Зарегистр. 11-05-2006 | Отправлено: 09:49 25-09-2009
    Eminence

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа, никак не могу прояснить одной вещи. Сейчас в прессе постоянно пишут, что приложения нужно проектировать с учетом многоядерности процессоров. Хоть убей не понимаю, как это нужно учитывать. Ведь многопоточные приложения существуют очень давно, еще на заре развития операционных систем. И несколько параллельных потоков система сама раскидает на несколько процессоров. Так что же здесь необходимо учитывать?

    Всего записей: 106 | Зарегистр. 26-09-2009 | Отправлено: 11:52 27-09-2009
    Lyrik

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Eminence
    распараллеливать на уровне алгоритмов.

    Всего записей: 388 | Зарегистр. 04-04-2006 | Отправлено: 18:26 27-09-2009
    Eminence

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ну так и раньше же распараллеливалось. Создавались отдельные потоки, осуществлялась многопоточная обработка и т.п. Сколько иногда возиться приходилось, чтобы синхронизацию обеспечить

    Всего записей: 106 | Зарегистр. 26-09-2009 | Отправлено: 23:14 27-09-2009
    Infinite Retrieval

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Правильно ли я понимаю, что в обычных C возможно лишь создание обычного статического массива структур, тобишь никаким образом выделить память во время работы программы под структуры, или наоборот, освободить память, занятую структурой невозможно? А в C++ сие можно делать операторами new и delete, так?

    Всего записей: 707 | Зарегистр. 22-02-2008 | Отправлено: 01:26 28-09-2009
    KADABRA



    Великий покусатель
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Infinite Retrieval

    Цитата:
    Правильно ли я понимаю, что в обычных C возможно лишь создание обычного статического массива структур, тобишь никаким образом выделить память во время работы программы под структуры, или наоборот, освободить память, занятую структурой невозможно?

    Нет, не правильно. Читать google://malloc, google://free.

    ----------
    Это не подпись.

    Всего записей: 1718 | Зарегистр. 14-07-2003 | Отправлено: 01:43 28-09-2009
    Infinite Retrieval

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Да, и можно ли перевыделять память под динамический массив объектов (тобишь расширить массив не стирая предыдущие объекты) (тобишь аналог realloc, но классовый, чтоб вызывал коснтруктор)?
     
    Добавлено:
    тобишь можно
    typedef
    struct a  
    {
    /////
    } mystr;
    mystr *p;
    p = malloc(sizeof(mystr));
     
    так???

    Всего записей: 707 | Зарегистр. 22-02-2008 | Отправлено: 01:43 28-09-2009 | Исправлено: Infinite Retrieval, 01:46 28-09-2009
    Qraizer



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Нет, нельзя. Но если ты используешь контейнеры стандартной библиотеки, к примеру, std::vector<>, то можно использовать их собственные средства.
    В принципе несложно самому написать шаблонную функцию. Первое, что приходит в голову (неэффективное, но простое и безопасное):
    Код:
    template <typename T>
    T* renew(T* array, size_t curSize, size_t newSize) // без curSize обойтись можно, но муторно
    {
     T* temp = new T[newSize];
     
     for (size_t i=0; i<curSize; ++i) temp[ i ] = array[ i ];
     delete[] array;
     
     return temp;
    }
    В большинстве случаев достаточно получить память под новый массив, конструктором копии скопировать в него старые элементы, конструктором по умолчанию дозаполнить его до конца (нельзя оставлять в массиве неинициализированные или недоинициализированные объекты) и удалить старый массив. Это слишком накладно, особенно, если новые элементы придётся потом переинициализировать, потому что конструктор по умолчанию не всегда самый подходящий. Кроме того, вместо копирования имеет смысл перемещать элементы, а текущий стандарт языка не предоставляет такой стандартной возможности (новый будет предоставлять). Но при этом возникает другая проблема: если один из элементов при копировании или создании бросит исключение, старый массив будет уже испорчен перемещением, поэтому программа останется без обоих массивов, и нового, и старого, а перемещать обратно небезопасно ввиду возможности новых исключений.
    В общем случае нет хороших и подходящих для большинства ситуаций методов перераспределения. Множество нюансов привело к тому, что комитет решил не заводить аналог realloc(). Иначе б в языке появилась фича, которая использовалась бы реже, чем заменялась программистами на более эффективные и/или безопасные собственные велосипеды, базируясь при этом на конкретные ситуации.

    ----------
    Одни с годами умнеют, другие становятся старше.

    Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 04:16 28-09-2009 | Исправлено: Qraizer, 04:27 28-09-2009
    sergeymd21

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    дана к примеру матрица:  
     
    a  b  c  d  e  f  
    1, 0, 0, 1, 0, 1, a  
    0, 1, 1, 0, 0, 1, b  
    0, 1, 1, 0, 0, 0, c  
    1, 0, 0, 1, 0, 1, d  
    0, 0, 0, 0, 1, 0, e  
    1, 1, 0, 1, 0, 1  f  
     
    Тут нужно найти начальное покрытие ну то есть оно ищется так: построчно просматривается матрица и где есть единица составляется пара из строки и столбца  
     
    a,adf - 1-ая строка и 1-ый и 4-ый и 6-ый столбцы  
     
    Вот оно найдено: C0={(a,adf),(b,bcf),(c,bc),(d,adf),(e,e),(f,abdf)}  
     
    ВНИМАНИЕ ВОПРОС:как бы мне это оформит в c++ , какой тип данных ,ну то есть я могу сделать массив arr[5][5] и туда это все помещать,но там будут оставаться не заполненные области т.к. эл-ов не равное кол-во.  
     
    Мне просто потом нужно работать с этими группами искать их пресечение, объединение и т.д  

    Всего записей: 3 | Зарегистр. 10-06-2009 | Отправлено: 19:35 28-09-2009
    Eminence

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно сделать разреженный массив, используя структуры. Одним из элементов структуры будет признак, указывающий, имеется ли значение в ячейке или нет, а другой - само значение:
     
    struct SData
    {
         SData() {m_bExist = false;}
         bool m_bExist;
         int m_value;
    };
     
    SData array[5][5];
     
    Можно сделать также массив массивов, но здесь необходимо использовать STL контейнеры, поскольку мы заранее не знаем размерность массива

    Всего записей: 106 | Зарегистр. 26-09-2009 | Отправлено: 20:09 28-09-2009 | Исправлено: Eminence, 20:13 28-09-2009
    sergeymd21

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    мне к примеру потом нужно делать такие операции  (a U b,adf &#8745; bcf)=(ab,f) и так каждая пара с каждой
     
     
    Добавлено:
    &#8745; -пересечение

    Всего записей: 3 | Зарегистр. 10-06-2009 | Отправлено: 20:35 28-09-2009
    alex1252008

    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Использую MFC. Каким методом устанавливать св-ва диалоговых_окон/элементов_управления в Visual C++ 2008?

    Всего записей: 2 | Зарегистр. 17-12-2008 | Отправлено: 21:58 28-09-2009
    Eminence

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    мне к примеру потом нужно делать такие операции (a U b,adf &#8745; bcf)=(ab,f) и так каждая пара с каждой

    Тогда массив массивов - наиболее подходящая структура. Есть отдельный массив, и каждый элемент массива - тоже массив, состоящий из элементов результирующего мнодества

    Цитата:
    Использую MFC. Каким методом устанавливать св-ва диалоговых_окон/элементов_управления в Visual C++ 2008?

    2008 не использовал, но, насколько мне известно, MFC уже давно не менялось. В любом случае, свойства устанавливаются функцией SetWindowLong.

    Всего записей: 106 | Зарегистр. 26-09-2009 | Отправлено: 23:54 28-09-2009
    alex1252008

    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    2008 не использовал, но, насколько мне известно, MFC уже давно не менялось. В любом случае, свойства устанавливаются функцией SetWindowLong.

    Функции SetWindowLong нет.

    Всего записей: 2 | Зарегистр. 17-12-2008 | Отправлено: 00:36 29-09-2009
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sergeymd21
    в качестве типа глянь в сторону битовых массивов...

    Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 11:52 29-09-2009
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru