Help and Support
 

powered byLive Search

How to use the abs STL function in Visual C++

Article ID:156811
Last Review:August 11, 2005
Revision:5.0
This article was previously published under Q156811
On This Page

SUMMARY

The sample code below illustrates how to use the abs STL function in Visual C++.

Back to the top

MORE INFORMATION

Required Header

   <valarray>
				

Back to the top

Prototype

   template<class T>
   valarray<T> abs(const valarray<T>& x);
				
NOTE: The class/parameter names in the prototype may not match the version in the header file. Some have been modified to improve readability.

Back to the top

Description

The sample declares a valarray of integers and uses STL abs() function to get the absolute value for each array element.

Back to the top

Sample Code

NOTE: The first line in the sample code section says:
// Compile options needed: /GX
In VC++ .NET, /EHsc is set by default and is equivalent to /GX.
////////////////////////////////////////////////////////////////////// 
// 
// Compile options needed: None
// 
// <filename> :  main.cpp
// 
// Functions:
// 
//    abs
// 
// Written by Yeong-Kah Tam
// of Microsoft Product Support Services,
// Copyright (c) 1996 Microsoft Corporation. All rights reserved.
////////////////////////////////////////////////////////////////////// 

// disable warning C4267: possible loss of data,
// okay to ignore

#pragma warning(disable: 4267)

#include <iostream>                 // for i/o functions
#include <valarray>                 // for valarray

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

#define ARRAY_SIZE  10              // array size

typedef valarray<int> INTVALARRAY;  // type for valarray of ints

void main()

{

    // Initialize val_array to 0, -1, -2, etc.
    INTVALARRAY val_array(ARRAY_SIZE);
    for (int i = 0; i < ARRAY_SIZE; i++)
        val_array[i] = -i;

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

    // Display the values of val_array before calling abs().
    cout << "The values of val_array before calling abs():\n";
    for (i = 0; i < ARRAY_SIZE; i++)
        cout << val_array[i] << "    ";
    cout << "\n\n";

    // Display the result of val_array after calling abs().
    INTVALARRAY abs_array = abs(val_array);
    cout << "The result of val_array after calling abs():\n";
    for (i = 0; i < ARRAY_SIZE; i++)
        cout << abs_array[i] << "     ";
    cout << "\n\n";

}
				
Output:
Size of val_array = 10

The values of val_array before calling abs():
0    -1    -2    -3    -4    -5    -6    -7    -8    -9

The result of val_array after calling abs():
0     1     2     3     4     5     6     7     8     9
				

Back to the top

REFERENCES

For the same information about abs, visit the following MSDN Web site:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcstdlib/html/vcsampsampleabsstlsample.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcstdlib/html/vcsampsampleabsstlsample.asp)

Back to the top


APPLIES TO
The Standard C++ Library, when used with:
  Microsoft Visual C++ 4.2 Enterprise Edition
  Microsoft Visual C++ 5.0 Enterprise Edition
  Microsoft Visual C++ 6.0 Enterprise Edition
  Microsoft Visual C++ 4.2 Professional Edition
  Microsoft Visual C++ 5.0 Professional Edition
  Microsoft Visual C++ 6.0 Professional Edition
  Microsoft Visual C++ 6.0 Standard Edition
  Microsoft Visual C++ .NET 2002 Standard Edition
  Microsoft Visual C++ .NET 2003 Standard Edition

Back to the top

Keywords: 
kbinfo kbtshoot kbcode KB156811

Back to the top

Article Translations

 

Other Support Options

  • Need More Help?
    Contact a Support professional by Email, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.