Erhöhen einer Zahl auf die Potenz in C++

  1. Verwenden Sie die Funktion std::pow, um eine Zahl in C++ hochzupotenzieren
  2. Verwenden der benutzerdefinierten Funktion zum Erhöhen eines Vektors von Zahlen auf die Potenz von 2 in C++
  3. Verwenden der benutzerdefinierten Funktion zum Erhöhen eines Vektors von Zahlen auf die Potenz in C++

Dieser Artikel demonstriert mehrere Methoden, wie eine Zahl in C++ hochgepotenzt werden kann.

Verwenden Sie die Funktion std::pow, um eine Zahl in C++ hochzupotenzieren

Die Funktion std::pow kann verwendet werden, um das Produkt einer gegebenen Basiszahl hoch n zu berechnen, wobei n ein ganzzahliger Wert oder eine Fließkommazahl sein kann. Beachten Sie, dass diese Funktion mehrere Ausnahmen und Sonderfälle hat, die vom Programmierer gehandhabt oder mit der separaten Funktion implementiert werden müssen, die im Header der C++-Bibliothek <cmath> bereitgestellt wird. Z. B. kann pow nicht verwendet werden, um die Wurzel aus einer negativen Zahl zu berechnen, und stattdessen sollten wir std::sqrt oder std::cbrt verwenden. Im folgenden Beispiel heben wir jedes Element eines int-Vektors auf die beliebige Potenz von 3.

#include <iostream>
#include <vector>
#include <iterator>
#include <cmath>

using std::cout; using std::endl;
using std::vector; using std::copy;
using std::pow; using std::ostream_iterator;

template <typename T>
void PrintVector(vector<T> &arr)
{
    copy(arr.begin(), arr.end(),
         ostream_iterator<T>(cout,"; "));
    cout << endl;
}

constexpr int POWER = 3;

int main() {
    vector<int> arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    PrintVector(arr);
    for (auto &item : arr) {
        item = pow(item, POWER);
    }
    PrintVector(arr);

    return EXIT_SUCCESS;
}

Ausgabe:

1; 2; 3; 4; 5; 6; 7; 8; 9; 10;
1; 8; 27; 64; 125; 216; 343; 512; 729; 1000;

Verwenden der benutzerdefinierten Funktion zum Erhöhen eines Vektors von Zahlen auf die Potenz von 2 in C++

Alternativ zur vorherigen Methode kann man mit der Funktion pow verschiedene benutzerdefinierte Funktionen implementieren, um die Standardfunktionalität zu erweitern. Dieses Beispiel demonstriert eine Funktion Pow2Vector, die einen vector-Container annimmt und dessen Elemente auf die Potenz von 2 erhöht. Beachten Sie, dass die Funktionsvorlage PrintVector Vektorelemente auf der Konsole ausgibt, und dass sie einen beliebigen Vektor eingebauter Datentypen annehmen kann.

#include <iostream>
#include <vector>
#include <iterator>
#include <cmath>

using std::cout; using std::endl;
using std::vector; using std::copy;
using std::pow; using std::ostream_iterator;

template <typename T>
void PrintVector(vector<T> &arr)
{
    copy(arr.begin(), arr.end(),
         ostream_iterator<T>(cout,"; "));
    cout << endl;
}

template <typename T>
vector<T> &Pow2Vector(vector<T> &arr){
    for (auto &i : arr) {
        i = pow(i, 2);
    }
    return arr;
}

constexpr int POWER = 3;

int main() {
    vector<int> arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    PrintVector(Pow2Vector(arr));

    return EXIT_SUCCESS;
}

Ausgabe:

1; 4; 9; 16; 25; 36; 49; 64; 81; 100;

Verwenden der benutzerdefinierten Funktion zum Erhöhen eines Vektors von Zahlen auf die Potenz in C++

Als Fortsetzung der vorherigen Methode kann man die zugrundeliegende Funktion so anpassen, dass sie ein zusätzliches Argument des Exponentenwertes annimmt. Auf diese Weise haben wir im Grunde die Funktion implementiert, die die gegebenen Elemente im vector auf die von uns angegebene Potenz bringt. Beachten Sie, dass Sie die Variable float/double als Exponentenwert initialisieren und dann an die Funktion PowVector übergeben müssen, damit die Ableitung vom Vorlagentyp funktioniert.

#include <iostream>
#include <vector>
#include <iterator>
#include <cmath>

using std::cout; using std::endl;
using std::vector; using std::copy;
using std::pow; using std::ostream_iterator;

template <typename T>
void PrintVector(vector<T> &arr)
{
    copy(arr.begin(), arr.end(),
         ostream_iterator<T>(cout,"; "));
    cout << endl;
}

template <typename T>
vector<T> &PowVector(vector<T> &arr, T power) {
    for (auto &i : arr) {
        i = pow(i, power);
    }
    return arr;
}

constexpr int POWER = 3;

int main() {
    vector<int> arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    vector<float> arr2 = {1.2, 2.3, 3.2, 4.5, 5.5, 6.2, 7.1, 8.2, 9.0, 10.1};

    float power = 2.0;
    PrintVector(PowVector(arr, 5));
    PrintVector(PowVector(arr2, power));

    return EXIT_SUCCESS;
}

Ausgabe:

1; 32; 243; 1024; 3125; 7776; 16807; 32768; 59049; 100000;
1.44; 5.29; 10.24; 20.25; 30.25; 38.44; 50.41; 67.24; 81; 102.01;