FUNCTION
lookup
Array namespace
You're viewing an older version of this page (#5578). View the current version.
Interface
#include <codecogs/computing/array/lookup.h>
using namespace Computing::Array;
This function looks up a value in the given vector. When value is found in the lookup vector, the function returns the corresponding value from the result vector. It is equivalent to the vector form of the Microsoft Excel function LOOKUP. If the parameter sorted is set to true, then this function uses a binary search approach to find the value in lookup. If an exact match cannot be found then it returns the next smallest value (the largest value in lookup that does not exceed value), the same approximate-match behaviour as Excel's LOOKUP.
The two vectors lookup and result must be of equal length.
Example:
#include <vector>
#include <iostream>
#include <stdio.h>
#include <codecogs/computing/array/lookup.h>
using namespace std;
using namespace Computing;
int main()
{
vector<double> rowA;
vector<char> rowB;
rowA.push_back(-2.3);
rowA.push_back(1.37);
rowA.push_back(1.54);
rowA.push_back(2.02);
rowA.push_back(2.17);
rowB.push_back('a');
rowB.push_back('b');
rowB.push_back('c');
rowB.push_back('d');
rowB.push_back('e');
cout<<"lookup vector:\n";
for (unsigned int i=0; i<rowA.size(); i++) cout<<rowA[i]<<"\t";
cout<<"\n";
cout<<"result vector:\n";
for (unsigned int i=0; i<rowB.size(); i++) cout<<rowB[i]<<"\t";
cout<<"\n";
cout<<"lookup 1.37=";
cout<<Array::lookup<double, char>(1.37, rowA, rowB);
cout<<"\n";
cout<<"lookup 1.36=";
cout<<Array::lookup<double, char>(1.36, rowA, rowB);
cout<<"\n";
cout<<"lookup 1.36 (sort=false)=";
cout<<Array::lookup<double, char>(1.36, rowA, rowB, false);
cout<<"\n";
cout<<"lookup 2.01=";
cout<<Array::lookup<double, char>(2.01, rowA, rowB);
cout<<"\n";
}Output:
lookup vector:
-2.3 1.37 1.54 2.02 2.17
result vector:
a b c d e
lookup 1.37=b
lookup 1.36=a
lookup 1.36 (sort=false)=?
lookup 2.01=c