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

Удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ассоциативные контейнеры, не происходит замена http://www.cyberforum.ru/cpp-beginners/thread1091929.html
Вопрос вот какой: модификация контейнера map<int,int>. Сначала я забиваю в него 90 тысяч 5-рок, а потом некоторые из них я должен заменит на другие за некоторыми правилами (сейчас это неважно), так вот, как бы я не старался но замена не происходит. Вот что я пробовал: Сначала хотел удалить нужную пару, а потом записать по новой, но pop() нету в map Записать 5-ки, а потом переписать за...
C++ SQL в C++ Доброе время суток. У меня такой вопрос: можно ли подключить базу SQL в программе с++, что бы распознавались команды, которые будут считываться с текстового файла? И если можно, то как? Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread1091918.html
C++ Логические вычисления
Arg1 = 0x1234 Arg2 = 0xff ~nArg1 = 0xffffedcb ~nArg2 = 0xffffff00 nArg1 ^ nArg2 = 0x12cb (~nArg1 = 0xffffedcb )0x1234 в двоичной системе = 1001000110100, потом вычислил с помощью оператора ~ и перевёл в 16-ую систему счисления, в итоге получил ответ dcb, а в книге ~nArg1 = 0xffffedcb. Как это получилось ? И если можно, пожалуйста, помогите и с другими примерами приведёнными мною. Большое...
Написать курсовую "Транслятор из C++ в Pascal" C++
Транслятор из с++ в паскаль!
C++ Подключиться к COM-объекту, вызвать функции и прочитать таблицы http://www.cyberforum.ru/cpp-beginners/thread1091898.html
Подскажите пожалуйста. Мне нужно подключиться к COM-объекту, вызвать функции и прочитать таблицы. Есть COM-объект - AmiSharp. http://www.bot4sale.ru/faq/amisharp-docs/tables-amisharp.html Нужно реализовать чтение таблиц из этого объекта. У меня все это реализовано средствами Amibroker, хочу реализовать на С++. Ссылка на статью и пример если можно. С уважением, Александр.
C++ Не чиститься память при разрушении класса Сделал небольшой пример tcp сервера. http://rusfolder.com/39763465 Он принимает строки, разделенные \n и пересылает их обратно. Если слать небольшими порциями пакеты, то всё работает нормально. Если я вышлю очень большую порцию пакета, например "test\ntest\ntest\n" и так. несколько тысяч, cервер заполняет массив writeBuffer данными и память раз растает до 100MB, это нормально и понятно. НО... подробнее

Показать сообщение отдельно
zss
Модератор
Эксперт С++
6189 / 5792 / 1875
Регистрация: 18.12.2011
Сообщений: 14,797
Завершенные тесты: 1
08.02.2014, 16:14     Удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером
Цитата Сообщение от Bubbles Посмотреть сообщение
ошибку выдает.
#include <fstream>
подключили?

Окончательный вариант
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
77
78
79
80
81
82
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
struct Inform
{
   string name;
   int v;
   string autor;
   string nositel;
};
 
void ShowData(Inform *M, int N)
{
   for (int i = 0; i < N; i++)
    {
     cout << M[i].name << endl;
     cout << M[i].v << endl;
     cout << M[i].autor << endl;
     cout << M[i].nositel << endl;
     cout << endl;
    }
}
void GetData(Inform *M,int N)
{
    for (int i=0; i < N; i++)
    {
        cout << "NAZVANIE: "; cin >> M[i].name;
        
        cout << "OBIEM: "; cin >> M[i].v;
 
        cout << "AUTOR: "; cin >> M[i].autor;
        
        cout << "NOSITEL: "; cin >> M[i].nositel;
        cout << endl;
    }
}
void DeleteElem(int v0,Inform *M, int &N)
{
   for (int i = 0; i < N; i++)
    {
         if(M[i].v==v0)
         {
             for (int k = i; k < N-1; k++)//сдвиг всех элементов на один
             {
                M[k].name=M[k+1].name;
                M[k].v=M[k+1].v;
                M[k].autor=M[k+1].autor;
                M[k].nositel=M[k+1].nositel;
             }
             N--; // количество элементов уменьшилось
             i--; // надо снова проверить, что теперь на i-ом месте.
         }
    }
}
void StoreData(ofstream &out,Inform *M, int N)
{
   for (int i = 0; i < N; i++)
   {
     out << M[i].name << endl;
     out << M[i].v << endl;
     out << M[i].autor << endl;
     out << M[i].nositel << endl;
     out << endl;
   }
}
int main()
{
    int N; cout << "Vvedite  N: "; cin >> N;
    Inform *M = new Inform[N];
    GetData(M, N);
    ofstream out("file.txt");
    StoreData(out,M, N);
    out.close();
    int v=111;
    DeleteElem(v,M,N);
    ShowData(M, N); 
    delete [] M;
    system("PAUSE");
    return 0;
}
 
Текущее время: 06:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru