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

Перегрузка оператора *= для vector<int> - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали http://www.cyberforum.ru/cpp-beginners/thread104673.html
Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали
C++ обучающая система привет всем)))оч над курсовой выполненный на си или паскале...либо легенькая игра, либо обучающая система...сенкс всем кто поможет:) http://www.cyberforum.ru/cpp-beginners/thread104663.html
ООП Полиморфизм Наследование C++
У меня есть базовый класс и 2 производных от него класса... Как сделать, чтобы в программе я мог сделать такое обьявление: Force fc; fc = new GravityForce(nofg, 5, 2); fc = new ViscousDragForce(nofvd, 6, 2); И потом пробежатся по массиву и вызвать для каждого производного класса его собственный виртуальный метод примерно так
C++ Подправте пожалуйста код
Привет всем. Очень нужна ваша помощь... Вот исходный код на паскале: Program LAB1; uses crt; Procedure WriteByte(a:byte); var i:integer; begin for i:=7 downto 0 do begin if ((a shr i) and $01) <>0 then write('1')
C++ Отсортировать массив чисел методом пузырька http://www.cyberforum.ru/cpp-beginners/thread104621.html
помогите пожалуйста!!!! отсортировать массив чисел методом пузырька чтобы числа были не заданы ,а вводились пользователем(n-ое количество чисел)
C++ Передача элементов массива из одной функции в другую Подскажите пожалуйста, хочу написать тест проверки знаний, генерацию случайных элементов без повторений нашел в Internet переработал под себя, теперь столкнулся с задачей передачи элементов массива из одной функции в другую испльзую VS 2008 // программа теста // #include "stdafx.h" #include "time.h"// системная директива работы со временем #include "stdlib.h"// хранятся функции для работы... подробнее

Показать сообщение отдельно
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1330 / 863 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
14.03.2010, 23:36     Перегрузка оператора *= для vector<int>
Как-то так..
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
#include <iostream>
#include <iomanip>
#include <vector>
 
typedef long long LL;
 
const long long base = 1000*1000*1000;
 
std::vector<int> operator * (const std::vector<int> &a, const std::vector<int> &b)
{
    std::vector<int> res(b.size() + a.size());
    for(int i = 0; i < a.size(); ++i)
        for (int j = 0, carry = 0; j < b.size() || carry; ++j)
        {
            LL cur = res[i+j] + a[i] * LL( j < b.size() ? b[j] : 0 ) + carry;
            res[i+j] = cur % base;
            carry = cur / base;
        }
        while (res.size() && !res.back()) res.pop_back();
        return res;
}
 
std::vector<int> &operator *= (std::vector<int> &a, const std::vector<int> &b)
{
    return ( a = (a * b) );
}
 
std::vector<int> BinPow(int a, int n)
{
    std::vector<int> res(1, 1), b(1, a);
    while (n) {
        if (n&1) --n, res *= b;
        else n >>= 1, b *= b;
    }
    return res;
}
 
int main()
{
    int a = 10, n = 15;
    std::cin >> a >> n;
    std::vector<int> res = BinPow(a, n);
    std::cout << res.back();
    std::cout.fill('0'), std::cout.width(9);
    for(int i = res.size()-2; i >= 0; --i) std::cout << res[i];
    std::cout << std::endl;
    system("pause");
    return 0;
}
 
Текущее время: 07:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru