Write a function named problem2 in a header file that accepts two arguments: a t
ID: 656539 • Letter: W
Question
Write a function named problem2 in a header file that accepts two arguments: a two dimensional
vector of a template type and a value of the sample template type as is
stored in the 2D vector. Search for a value in the given two dimensional 2D
vector and return the x,y coordinate of an element with that value or return
std::make_pair(-1, -1) if the element is not present.
This function then should run using the code below.
int main( int argc, char** argv) {
std::vector< std::vector<int>> matrix(3, std::vector<int>(3, 0));
matrix.at(2).at(1) = 5;
std::vector< std::vector<std::string>> matrix2(4, std::vector<std::string>(2, "hello"));
matrix2.at(0).at(1) = "world";
if (std::make_pair(2, 1) != problem2(matrix, 5) or
std::make_pair(-1, -1) != problem2(matrix, 8) or
std::make_pair(0, 1) != problem2(matrix2, std::string("world"))) {
std::cerr<<"Test 2 failed. ";
}
else {
std::cerr<<"Test 2 passed. ";
score += 10;
}
Explanation / Answer
Program code:
// Matrix vector.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "Matrix.h"
#include <iostream>
#include <vector>
using namespace std;
int main( int argc, char** argv)
{
std::vector<std::vector<int>> matrix(3, std::vector<int>(3, 0));
matrix.at(2).at(1) = 5;
int score=0;
std::vector< std::vector<std::string>> matrix2(4, std::vector<std::string>(2, "hello"));
matrix2.at(0).at(1) = "world";
if (std::make_pair(2, 1) != problem2(matrix, 5) || std::make_pair(-1, -1) != problem2(matrix, 8) )
{
std::cerr<<"Test 2 failed. ";
}
else
{
std::cerr<<"Test 2 passed. ";
score += 10;
}
system("pause");
return 0;
}
//Matrix.h
#ifndef Matrix
#define Matrix
#include <iostream>
#include <vector>
using namespace std;
template <class T1> std::pair<T1, T1> problem2(vector<vector<T1>> mat, T1 value)
{
for(int i=0;i<mat.size();i++)
{
for(int j=0; j<mat.at(i).size();j++)
{
if(mat[i][j]==value)
{
return (std::pair<T1, T1>(i, j));
}
}
}
return std::make_pair(-1, -1);
}
#endif
Sample Output:
Test 2 passed.
Press any key to continue . . .
Note: Please the check the code. The required code is highlighted in bold letters. The if condition in the main function has been modified too.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.