´ÙÀ½ ÇÔ¼ö´Â ³»ÀûÀ» °è»êÇÑ´Ù.
T inner_product(InIt1 first1, InIt1 last1, InIt2 first2, T val [, BinOp op1, BinOp op2]);
³»ÀûÀ̶õ µÎ ±¸°£ÀÇ ´ëÀÀµÇ´Â ¿ä¼Ò³¢¸® °öÇÑ ÈÄ Àüü¸¦ ´õÇÑ °ªÀÌ´Ù. µÎ °³ÀÇ ¹Ýº¹ÀÚ ±¸°£°ú ÃʱⰪ valÀ» ÁöÁ¤ÇÏ¸ç ³»Àû °è»ê¿¡ »ç¿ëµÉ µÎ °³ÀÇ ÀÌÇ× ÇÔ¼ö °´Ã¼¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. µðÆúÆ® ¿¬»êÀÚ´Â *¿Í +·Î µÇ¾î ÀÖ¾î °öÀÇ ÇÕÀ» ±¸ÇÏÁö¸¸ ´Ù¸¥ ¿¬»êÀ» ÁöÁ¤Çϸé ÇÕÀÇ °öÀ» ±¸Çϰųª ³ª¸ÓÁöÀÇ ÇÕÀ» ±¸ÇÏ´Â ½ÄÀ¸·Îµµ ¿¬»êÇÒ ¼ö ÀÖ´Ù.
¿¹ Á¦ : inner_product |
#include <iostream>
#include <vector>
#include <numeric>
#include <algorithm>
using namespace std;
void main()
{
int inp;
vector<int> vi1,vi2;
vi1.push_back(2);vi1.push_back(3);vi1.push_back(4);
vi2.push_back(5);vi2.push_back(6);vi2.push_back(7);
inp=inner_product(vi1.begin(),vi1.end(),vi2.begin(),0);
printf("³»Àû = %d\n",inp);
}
°á°ú´Â 2*5 + 3*6 + 4*7ÀÎ 56ÀÌ´Ù. º¤ÅÍÀÇ ¿ä¼Ò °³¼ö°¡ ¸¹¾ÆÁö¸é ÀÌ °ªµµ ±²ÀåÈ÷ Ä¿Áú ¼ö ÀÖ´Ù. ´ÙÀ½ ÇÔ¼ö´Â µÎ ÄÁÅ×À̳ÊÀÇ ¹Ýº¹ÀÚ ±¸°£À» »çÀü¼øÀ¸·Î ºñ±³ÇÑ´Ù.
bool lexicographical_compare (InIt1 first1, InIt1 last1, InIt2 first2 [, BinPred F]);
µÎ ±¸°£ÀÇ ´ëÀÀµÇ´Â ¿ä¼Ò¸¦ Â÷·Ê´ë·Î ºñ±³Çϴµ¥ ù ¹øÂ° ¿ä¼Ò°¡ µÎ ¹øÂ° ¿ä¼Òº¸´Ù ÀÛÀ¸¸é true¸¦ ¸®ÅÏÇϰí Å©¸é false¸¦ ¸®ÅÏÇϸç Áï½Ã Á¾·áÇÑ´Ù. ¸¸¾à °°´Ù¸é ´ÙÀ½ ¿ä¼Ò¸¦ ¶È°°Àº ¹æ½ÄÀ¸·Î °è¼Ó ºñ±³Çϱ⸦ ±¸°£³¡±îÁö ¹Ýº¹ÇÑ´Ù. µðÆúÆ® ºñ±³ ÇÔ¼ö °´Ã¼°¡ lessÀ̹ǷΠù ¹øÂ° ±¸°£ÀÌ µÎ ¹øÂ° ±¸°£º¸´Ù À۾ƾ߸¸ true¸¦ ¸®ÅÏÇÏ¸ç °°À» °æ¿ì´Â ÀÛÁö ¾ÊÀ¸¹Ç·Î false°¡ ¸®ÅϵȴÙ. ¸¸¾à ù ¹øÂ° ±¸°£ÀÌ ¸ÕÀú ³¡³ª°í µÎ ¹øÂ° ±¸°£Àº ¾ÆÁ÷ °ªÀÌ ³²¾ÒÀ¸¸é ÀÌ °æ¿ì´Â true¸¦ ¸®ÅÏÇÑ´Ù.
¿¹ Á¦ : lexicographical |
#include <iostream>
#include <vector>
#include <numeric>
#include <algorithm>
using namespace std;
void main()
{
vector<int> vi1,vi2;
for (int i=8;i<16;i++) {
vi1.push_back(i);
vi2.push_back(i);
}
//vi1[5]=0;
if (lexicographical_compare(vi1.begin(),vi1.end(),vi2.begin(),vi2.end())) {
cout << "vi1ÀÌ ´õ ÀÛ´Ù" << endl;
} else {
cout << "vi1ÀÌ ´õ ÀÛÁö ¾Ê´Ù" << endl;
}
}
ÀÌ´ë·Î ÄÄÆÄÀÏÇÏ¸é µÎ º¤ÅͰ¡ ¿ÏÀüÈ÷ µ¿ÀÏÇϹǷΠ´õ ÀÛÁö ¾Ê´Ù°¡ Ãâ·ÂµÈ´Ù. ÁÖ¼®À» Ç®¾î vi1[5]¸¦ 0À¸·Î ¸¸µé¸é vi1ÀÌ ´õ ÀÛÀº °ÍÀ¸·Î Æò°¡µÉ °ÍÀÌ´Ù.