Come eseguire l'elevazione a potenza in C++
-
Usa la funzione
std::pow
per alimentare un numero in C++ - Usa una funzione personalizzata per quadrare un numero in C++
- Usa le funzioni personalizzate per eseguire l’esponenziazione in C++

Questo articolo illustrerà vari metodi su come eseguire l’elevazione a potenza in C++.
Usa la funzione std::pow
per alimentare un numero in C++
La funzione std::pow
può essere usata per calcolare la potenza di una data base, dove n
può essere un numero intero o in virgola mobile. Si noti che questa funzione ha una varietà di eccezioni e casi speciali, che devono essere gestiti dal programmatore o implementati utilizzando una funzione separata fornita dall’intestazione della libreria C++ <cmath>
. Ad esempio, pow
non può essere utilizzato per calcolare la radice di numeri negativi, ma std::sqrt
o std::cbrt
. Nell’esempio seguente, troveremo il valore del cubo di ogni elemento del vettore int
.
#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;
}
Produzione:
1; 2; 3; 4; 5; 6; 7; 8; 9; 10;
1; 8; 27; 64; 125; 216; 343; 512; 729; 1000;
Usa una funzione personalizzata per quadrare un numero in C++
Oltre ai metodi precedenti, puoi anche usare la funzione pow
per implementare varie funzioni personalizzate per estendere le funzioni standard. Questo esempio mostra una funzione Pow2Vector
, che accetta un contenitore vector
e ne piazza gli elementi. Notare che il modello di funzione PrintVector
invia elementi vettoriali alla console e può accettare vettori di qualsiasi tipo di dati incorporato.
#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;
}
Produzione:
1; 4; 9; 16; 25; 36; 49; 64; 81; 100;
Usa le funzioni personalizzate per eseguire l’esponenziazione in C++
Come continuazione del metodo precedente, possiamo regolare la funzione di base per accettare un parametro del valore di indice aggiuntivo. In questo modo, abbiamo sostanzialmente implementato un programma che porta un dato elemento in un vettore alla potenza che abbiamo fornito. Nota che per far funzionare la deduzione del tipo di template, devi inizializzare la variabile float
/ double
su un valore esponente e poi passarla alla funzione PowVector
.
#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;
}
Produzione:
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;
Articolo correlato - C++ Math
- Calcola la distanza tra due punti in C++
- Calcola fattoriale di un numero in C++
- Genera numeri di Fibonacci in C++
- Moltiplica due matrici in C++
- Usa una costante PI in C++