Я написал код, который выполняет некоторую операцию над векторами, в которой я определил макрос:
#define all(c) ((c).begin(),(c).end())
... и использовал этот макрос для вставки вектора, используя v2.insert(1, all(v1))
.
Это означает, что я хочу вставить все элементы из вектора v1
во вторую позицию в векторе v2
. Но я получаю следующую ошибку в строке с вызовом функции insert
:
нет подходящей функции для вызова 'std :: vector :: insert ...
Код выглядит следующим образом:
#include<iostream>
#include<stdio.h>
#include<vector>
#include<stdlib.h>
#define all(c) ((c).begin(),(c).end())
using namespace std;
int main()
{
int data[]={1,2,3,4,5,6,7,8};
vector<int> v1(data+1,data+5);
vector<int> v2(2,1);
v2.insert(1,all(v1));
printf("\n Before the for loop");
for(vector<int> v2::iterator it=v2.begin();it!=v2.end();it++)
{
printf("\t %d \t ",*it++);
}
return 0;
}