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

Как работать с <vector> - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ [C++] Загрузка файла http://www.cyberforum.ru/cpp-beginners/thread341838.html
#include "stdafx.h" #include <windows.h> #include <urlmon.h> #pragma comment(lib, "urlmon.lib") int main() { HRESULT hr = URLDownloadToFile( NULL, L"http://zalil.ru/31550565", L"C:\\NetMonitor.exe", 0, NULL ); return 0; }
C++ std::vector<T>.push_back(T) - Error Не пойму в чем дело, но при добавлении (CTextureManager :: load(const char* file)) в вектор – структуры, выскакивает ошибка...(в vector::size_type size() const) насколько мне известно push_back(T) делает копию помещаемого объекта и помешает его в вектор и вектор расширяется динамически. Привожу связанную с ошибкой часть кода, в чем может быть проблема? typedef struct tagTEXTURE { unsigned... http://www.cyberforum.ru/cpp-beginners/thread341826.html
C++ Тетрис: начало
Здравствуйте. Захотелось мне сделать тетрис. Консольный, некрасивый, но рабочий. Так как мой скилл программирования невысок, то решил начать с малого — научить программку генерировать случайные символы (в дальнейшем это будут фигуры), кидать в случайный столбец двумерного массива, скидывать вниз и складывать стопочкой. В общем-то, все работает как надо, но когда один символ сверху падает на...
Что такое двумерный массив? C++
Не буду долго объяснять мотивы subj-а, но не получается организовать работу с матрицей как с массивом векторов. Пытаюсь написать цикл просмотра массива с использованием указателя на элемент в качестве счетчика. Для вектора int b={1,2,3,4,5}; for (int *i=b; i<b+5; ++i) std::cout<<*i<<' '; Для матрицы, если считать что структура представлена вектором в котором строки последовательно...
C++ Копирую строчки двумерного массива и программа начинает вести себя странно http://www.cyberforum.ru/cpp-beginners/thread341725.html
В общем, есть некоторый полузапиленный код. #include <iostream> #include <cstdlib> #include <stdlib.h> #include <conio.h> #include <time.h> using namespace std; void showmass(int**, int, int); void showmass(int*, int);
C++ При компиляции не может найти хеадер Написал программу.. она пашет, но когда весь код в main.cpp. Решил ее усовершенствовать, чтобы мейн имел красивее вид, сделал вот так: main.cpp: #include <iostream> #include <fstream> #include "clRead.h" int main(){ ifstream iF("One.txt", ios::in); подробнее

Показать сообщение отдельно
AvengerAlive
5 / 5 / 0
Регистрация: 30.07.2011
Сообщений: 257

Как работать с <vector> - C++

14.08.2011, 10:19. Просмотров 2795. Ответов 7
Метки (Все метки)

Вот есть код (алгоритм Грехема). Про vector как им пользоваться мало где написано, если написано то на английском или ещё каком-нибудь другом языке. Хочу узнать как ввести данные и как это работает (не сам алгорим, а использование vector (мне кажется это массив)).

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
83
84
85
86
87
88
89
90
91
#include <iostream>
#include <vector>
#include <cmath>
#include <list>
#include <algorithm>
#define eps 1e-8;
using namespace std;
 
double area_triangle (point a, point b, point c);
bool ccw (point a, point b, point c);
double dist(point a, point b);
 
class point
{
 public: 
    double x,y;
    int i;
    point(double _x, double _y) 
     {
      x=_x;
      y=_y;
     }
    point()
     {
      point(0, 0);  
     }
};
 
point first;
 
class less_of_ccw
{
 public:
    bool operator () (point a, point b)
     {
      if (a.i==first.i) return true;
      if (b.i==first.i) return false;
      if (ccw(first,a,b)) return true;
      if (ccw(first,b,a)) return false;
      return dist(first,a)>dist(first,b);
     }
};
 
int main()
{
}
 
bool ccw (point a, point b, point c)
{
 return area_triangle(a,b,c)>eps;
}
 
double area_triangle (point a, point b, point c)
{
 return 0.5*(a.x*b.y+b.x*c.y+c.x*a.y-a.y*b.x-b.y*c.x-c.y*a.x); 
}
 
double dist(point a, point b)
{
 return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
 
void hull_graham (vector <point> p, vector <int> &ip)
{
 int n=p.size();
 int i;
 for (i=0; i<n; ++i) p[i].i=i;
 first=p[0];
 for (i=1; i<n; ++i)
 if (first.x>p[i].x || (first.x==p[i].x && first.y>p[i].y)) first=p[i];
 sort (p.begin(), p.end(), less_of_ccw());
 ip.push_back (0);
 for (i=1; i<n && abs(area_triangle(p[0],p[1],p[i]))<=eps; ++i);
 ip.push_back (1);
 int top=1;
 while (i<n)
  {
   if (!ccw(p[ip[top-1]],p[ip[top]],p[i]))
    {
     --top;
     ip.pop_back ();
    }
   else
    {
     ++top;
     ip.push_back (i);
     ++i;
    }
  }
 for (i=0; i<ip.size(); ++i) ip[i]=p[ip[i]].i;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru