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

Массивы, одномерные - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ [C++] графы http://www.cyberforum.ru/cpp-beginners/thread262038.html
Алгоритм фронт фолны в графе Помогите.. Дана матрица Ag (Матрица смежности графа) И координаты начальной вершины i,j и кординаты конечной i1,j1 Найти кротчайший путь из i,j в i1,j1 и вывести его на экран..
C++ Арифметические операции с двоичными числами Вопрос такой. Вот задание: Двоичные числа (разбор строки, формирование строки, операции сложения, вычитания, разные варианты вывода строки). 1. Создать программный класс (или несколько связанных классов) на языке С++, которые реализуют заданные алгоритмы / функции (по вариантам). В классах реализовать конструкторы (деструкторы), инкапсуляцию (сокрытие закрытых атрибутов через методы... http://www.cyberforum.ru/cpp-beginners/thread262036.html
Как инициализировать двумерный массив? C++
подскажите как инициализировать двумерный массив long long int mass;
Вычислить произведение элементов каждой диагонали массива C++
Инициализировать нецелочисленный массив 5х5 данными от -3 до -1; Вычислить произведение элементов каждой диагонали массива. Оформить вычисления в виде функции с параметрами: исходный массив, размерность массива, результирующий массив; тип возвращаемого значения – int. Записать полученные значения в файл в виде строки. Считать из файла второе записанное значение и вывести его на экран. есть...
C++ DataGridView выбор цвета ячейки http://www.cyberforum.ru/cpp-beginners/thread262000.html
Пытаюсь задать цвет ячейки, все время вылетают ошибки помогите пожалуйста! Я пишу так: this->dataGridView1->Rows->Cells->Style->BackColor =color->LightGray; Вот какие ошибки выдаются: 1>c:\users\алексей\documents\visual studio 2005\projects\kursovoi_bos\kursovoi_bos\Form1.h(907) : error C2039: 'LightGray' : is not a member of 'System::String' 1> ...
C++ Функция с переменным количеством параметров-оъектов Нашел на форуме пример функции с переменным количеством int, подскажите как переписать ее для передачи числа параметров-объектов произвольного класса MyClass? int sred_znach(int x,...); { int i=0, j=0, sum=0; va_list uk_arg; va_start(uk_arg,x); /* установка указателя uk_arg на */ /* первый необязятельный параметр */ if (x!=-1) sum=x; /* проверка на пустоту списка */ подробнее

Показать сообщение отдельно
pproger
162 / 65 / 13
Регистрация: 22.03.2011
Сообщений: 188
22.03.2011, 20:27     Массивы, одномерные
ну а я с stl постебался слегка. вгони препода в шок

Код
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
#include <time.h>
#include <functional>

using namespace std;

//--------------------------------------------------------------------------------
class NegativeWithCount : public unary_function<int, bool> {
public:
	NegativeWithCount()
	{
		val = 0;
		compareCount = 0;
	}

	bool operator()(const int &i) const
	{
		val = i;
		++compareCount;
		return i < 0;
	}

	static int val;
	static int compareCount;
};

//--------------------------------------------------------------------------------
class CmpWithCount : public binary_function<int, int, bool> {
public:
	CmpWithCount()
	{
		compareCount = 0;
	}

	bool operator()(const int &i, const int &j) const
	{
		++compareCount;
		return i == j;
	}

	static int compareCount;
};

int NegativeWithCount::val;
int NegativeWithCount::compareCount;
int CmpWithCount::compareCount;

int main(int argc, char *argv[])
{
	vector<int> v;

	srand(static_cast<unsigned>(time(0)));

	//--------------------------------------------------------------------------------
	cout << "input N: ";
	for (int i = *istream_iterator<int>(cin); i > 0; i--)
		v.push_back((rand() % 100 + 1) * (rand() % 2 ? 1 : -1));

	copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
	cout << endl;
	
	//--------------------------------------------------------------------------------
	cout << "after remove: " << endl;
	v.erase(remove(v.begin(), v.end(), *max_element(v.begin(), v.end())), v.end());
	copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
	cout << endl;

	//--------------------------------------------------------------------------------
	cout << "input K: ";
	for (int i = *istream_iterator<int>(cin); i > 0; i--)
		v.push_back(*istream_iterator<int>(cin));

	copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
	cout << endl;

	//--------------------------------------------------------------------------------
	cout << "input M: ";
	rotate(v.begin(), v.begin() + *istream_iterator<int>(cin), v.end());
	copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
	cout << endl;

	//--------------------------------------------------------------------------------
	if (find_if(v.begin(), v.end(), NegativeWithCount()) != v.end()) {
		cout << "first negative element = " << NegativeWithCount::val
			 << ", compare count = " << NegativeWithCount::compareCount << endl;
	} else {
		cout << "non negative elements" << endl;
	}

	//--------------------------------------------------------------------------------
	cout << "sorted array:" << endl;
	sort(v.begin(), v.end());
	copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));

	//--------------------------------------------------------------------------------
	cout << endl << "input element for search: ";
	if (find_if(v.begin(), v.end(), bind2nd(CmpWithCount(), *istream_iterator<int>(cin))) != v.end()) {
		cout << "found. compare count = " << CmpWithCount::compareCount << endl;
	} else {
		cout << "nothing found" << endl;
	}

	return 0;
}
не былоб в задании этих счетчиков сравнений, можно было бы без функторов обойтись
 
Текущее время: 02:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru