Cómo utilizar la función sqrt STL y la función pow STL en C++

Seleccione idioma Seleccione idioma
Id. de artículo: 157942 - Ver los productos a los que se aplica este artículo
Nota : Visual C++ (2002) NET admitía ambos el modelo de código administrado proporcionado por .NET Framework y el no administrado nativo de Windows modelo de código. La información de este artículo se aplica a Visual C++ no administrado sólo código.
Expandir todo | Contraer todo

En esta página

Resumen

El código de ejemplo siguiente muestra cómo usar la STL funciones sqrt y pow en C++.

Más información

Encabezado necesario

   <valarray>
   <cmath>
				

Prototipo

   // sqrt
   template<class T>
   inline valarray<T> sqrt(const valarray<T>& x);

   // pow
   template<class T>
   inline valarray<T> pow(const valarray<T>& x, const valarray<T>& y);

   template<class T>
   inline valarray<T> pow(const valarray<T> x, const T& y);

   template<class T>
   inline valarray<T> pow(const T& x, const valarray<T>& y);
				
Nota : los nombres de clase o parámetro en el prototipo no coincida con la versión en el archivo de encabezado. Algunas se han modificado para mejorar la legibilidad.

Descripción

Este artículo muestra el uso de STL sqrt() y pow() funciones mediante código de ejemplo. SQRT() devuelve un objeto de clase <valarrayt>, cada cuyos elementos en el índice es la raíz cuadrada de x [I]. pow() tiene tres funciones de plantilla. La primera función de plantilla devuelve un objeto de clase valarray <t>, cada una de las cuyos elementos índice es x [I] elevado a la potencia de y [I]. La segunda función de plantilla se almacena en elemento que se x [I] elevado a la potencia de y. La tercera función de plantilla almacena en el elemento x elevado a la potencia de y [I].

Código de ejemplo

////////////////////////////////////////////////////////////////////// 
// 
// Compile options needed: /GX
// 
// main.cpp : Illustrates the use of STL sqrt() and pow() functions.
// 
// Functions:
// 
//    sqrt, pow
// 
// Written by Yeong-Kah Tam
// of Microsoft Product Support Services,
// Copyright (c) 1996 Microsoft Corporation. All rights reserved.
////////////////////////////////////////////////////////////////////// 

#include <iostream>                 // for i/o functions
#include <valarray>                 // for valarray
#include <cmath>                    // for sqrt() and pow()

#if _MSC_VER > 1020   // if VC++ version is > 4.2
   using namespace std;  // std c++ libs implemented in std
   #endif

#define ARRAY_SIZE  3               // array size

void main()

{

    // Set val_array to contain values 1, 4, 9 for the following test
    valarray<double> val_array(ARRAY_SIZE);

    for (int i = 0; i < ARRAY_SIZE; i++)
        val_array[i] = (i+1) * (i+1);

    // Display the size of val_array
    cout << "Size of val_array = " << val_array.size() << endl;

    // Display the values of val_array before calling sqrt() and pow().
    cout << "The values in val_array:" << endl;
    for (i = 0; i < ARRAY_SIZE; i++)
        cout << val_array[i] << "    ";
    cout << endl << endl;

    // Initialize rev_valarray that is the reverse of val_array.
    valarray<double> rev_valarray(ARRAY_SIZE);
    for (i = 0; i < ARRAY_SIZE; i++)
        rev_valarray[i] = val_array[ARRAY_SIZE - i - 1];

    // Display the size of rev_valarray.
    cout << "Size of rev_valarray = " << rev_valarray.size() << endl;

    // Display the values of rev_valarray.
    cout << "The values in rev_valarray:" << endl;
    for (i = 0; i < ARRAY_SIZE; i++)
        cout << rev_valarray[i] << "    ";
    cout << endl << endl;

    // rvalue_array to hold the return value from calling the sqrt() and
    // pow() functions.
    valarray<double> rvalue_array;

    // ----------------------------------------------------------------
    // sqrt() - display the content of rvalue_array
    // ----------------------------------------------------------------

    // Display the result of val_array after calling sqrt().
    rvalue_array = sqrt(val_array);
    cout << "The result of val_array after calling sqrt():" << endl;
    for (i = 0; i < ARRAY_SIZE; i++)
        cout << rvalue_array[i] << "     ";
    cout << endl << endl;

    // ----------------------------------------------------------------
    // pow() - display the content of rvalue_array
    // ----------------------------------------------------------------

    // This template function returns an object of class valarray<T>,
    // each of whose elements at I is x[I] raised to the power of y[I].
    rvalue_array = pow(val_array, rev_valarray);
    cout << "The result after calling pow(val_array, rev_valarray):"
         << endl;
    for (i = 0; i < ARRAY_SIZE; i++)
        cout << rvalue_array[i] << "     ";
    cout << endl << endl;

    // This template function stores in element I x[I] raised to the
    // power of y, where y=2.0.
    rvalue_array = pow(val_array, 2.0);
    cout << "The result after calling pow(val_array, 2.0):" << endl;
    for (i = 0; i < ARRAY_SIZE; i++)
        cout << rvalue_array[i] << "     ";
    cout << endl << endl;

    // This template function stores in element I x raised to the
    // y[I] power, where x=2.0.
    rvalue_array = pow(2.0, val_array);
    cout << "The result after calling pow(2.0, val_array):" << endl;
    for (i = 0; i < ARRAY_SIZE; i++)
        cout << rvalue_array[i] << "     ";
    cout << endl << endl;

}
				

Salida de programa

Size of val_array = 3
The values in val_array:
1    4    9

Size of rev_valarray = 3
The values in rev_valarray:
9    4    1

The result of val_array after calling sqrt():
1     2     3

The result after calling pow(val_array, rev_valarray):
1     256     9

The result after calling pow(val_array, 2.0):
1     16     81

The result after calling pow(2.0, val_array):
2     16     512
				

Referencias

Para la misma información acerca de sqrt y pow, visite el siguiente sitio Web de MSDN:
http://msdn.microsoft.com/en-us/library/awbsh9hw.aspx

Propiedades

Id. de artículo: 157942 - Última revisión: jueves, 11 de agosto de 2005 - Versión: 5.1
La información de este artículo se refiere a:
  • The Standard C++ Library sobre las siguientes plataformas
    • Microsoft Visual C++ 4.2 Enterprise Edition
    • Microsoft Visual C++ 5.0 Enterprise Edition
    • Microsoft Visual C++ 6.0 Enterprise
    • Microsoft Visual C++ 4.2 Professional Edition
    • Microsoft Visual C++ 5.0 Professional
    • Microsoft Visual C++ 6.0 Professional
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
    • Microsoft Visual C++ .NET 2002 Standard
    • Microsoft Visual C++ .NET 2003 Standard
Palabras clave: 
kbmt kbhowto kbsample kbcode kbinfo kbstl kbtemplate KB157942 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 157942

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com