Форум программистов, компьютерный форум CyberForum.ru

Измените структуру CStash чтобы данные хранились в объекте типа vector<char> - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Случайный вывод значений переменных http://www.cyberforum.ru/cpp-beginners/thread1012792.html
Доброй ночи, мне тут подруга дала задачку, написать программу-гадалку. Ну мол, вводишь вопрос, а она выдает "Да" или "Нет". Проблема в следующем, - никак не могу найти каким образом сделать рандом переменных. Сразу оговорюсь, что учу С++ второй день, так что больно не бейте) #include <iostream> using namespace std; int main () { setlocale (0,""); char question; char yes;
C++ Задача на работу с текстовыми файлами В качестве входных данных поступает некоторое сообщение. Все сообщения имеют общее правило: Пользователь Команда Задача следующая. По вводу данных должен вестись лог. лог должен записываться в текстовый файл.Выглядит это так: Запустили программу, вводим данные Andrey &pokasat // По нажатию Enter в текстовый файл записывается строка Andrey &pokasat 1 Maksim &zabrat // По нажатию... http://www.cyberforum.ru/cpp-beginners/thread1012789.html
C++ Определить средние значения элементов строк массива
Определить средние значения элементов строк массива M. Найти минимальное значение среди этих средних. #include<conio.h> #include <iostream> using namespace std; const int n = 3; const int m = 4; int main() { int a = {
C++ Поиск чисел Фибоначчи
Доброго времени суток! Написал программку, которая находит значение n-элемента в последовательности Фибоначчи. Изначально в ней содержалась ошибка (в последствии исправил). Когда я решил проверить программу, то получилось, что при поиске 20 элемента программа ошибалась на один элемент и показывала значение 19 элемента(но при этом корректно отображала значения). Но если я вводил <= 17 или > 21,...
C++ Объясните, как в данном примере работает friend http://www.cyberforum.ru/cpp-beginners/thread1012759.html
friend bool operator== (const String& firstStr, const String& secondStr); Если писать код без friend, то возникает ошибка: слишком много параметров для этой функции оператора. Вопрос: Объясните, как в этом примере работает friend. Что он делает.
C++ Как записать третье условие Как записать третье условие if? Оно почему-то не срабатывает совсем, если пишу число больше 100 или меньше 1... Задание: напишите код, умножающий исходное число на 2, если оно принадлежит интервалу от 1 до 100(включительно) и делится нацело на 3; в противном случае умножает на 3, если число принадлежит интервалу от 1 до 100, но не делится нацело на 3; и наконец, умножает число на остаток от его... подробнее

Показать сообщение отдельно
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
20.11.2013, 14:32     Измените структуру CStash чтобы данные хранились в объекте типа vector<char>
Не хочешь один вектор использовать ? не хочешь - не надо.
Цитата Сообщение от helloy Посмотреть сообщение
пример можно?)
Вот так можно, по моему компилируется
C++
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
#include <iostream>
#include <vector>
 
struct CStash
{
 
    CStash();
    explicit CStash(int size);
    template<typename T>
    void  add( T * element, int LENGTH);
    void* fetch(  int index);
    int count();
    void cleanup();
    void print();
 
    int next;
    std::vector<unsigned char> storage;
};
 
 
 CStash::CStash() : next(0)
 {
    storage.reserve(1000);  
}
 
 CStash::CStash( int sz) : next(0)
 {
    storage.resize(sz);  
}
 
 void CStash::print()
{
    for( std::vector<unsigned char>::const_iterator it = storage.cbegin(); 
        it != storage.cend();
        it++)
    std::cout << *it << ' ';
}
 
 
template<typename T>
void  CStash::add( T* element, int LENGTH){
 
    for(int i = 0;i < LENGTH; i++)
        storage.push_back(element[i]);
    next++;
}
 
void* CStash::fetch( int index)
{
    return &storage.at(index);
}
int CStash::count()
{
    return next;
}
 
 
void CStash::cleanup()
{
      storage.clear();
       next = 0;
    }
    
 
int main( )
{
    int byteArray[] = {0x49,0x91,0x6E,0xDC};
    char chArray[] = "4A464946";
    CStash cstash;
        cstash.add(byteArray, sizeof(byteArray)/sizeof(byteArray[0]));
        cstash.add(chArray, sizeof(chArray)/sizeof(chArray[0]));
        cstash.print();
    
    std::cin.get();
    return EXIT_SUCCESS;
}
 
Текущее время: 13:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru