将元素插入向量并替换所有其他元素的函数,从而截断最终元素
Function that inserts an element into a vector and displaces all other elements over, truncating the final element
>我正在尝试编写一个函数 InsertVector,该函数将元素 (elem) 插入到位置 pos 的向量中,然后将所有其他值向右替换,截断向量的最后一个值并返回其值; sz 是向量的大小。
这是代码:
//InsertVector function:
int InsertVector (vector <int> V, int sz, int pos, int elem) {
int tmp=V.at(sz-1);
V.insert(V.begin()+pos-1, elem);
for(int i(pos);i<=sz-2;i=i+1) {
int tmp2(V.at(i));
V.at(i)=V.at(i-1);
V.at(i+1)=tmp2;
}
return tmp;
这是我尝试在主服务器上测试该功能的尝试:
int main() {
vector<int>V;
V.push_back(2);
V.push_back(3);
V.push_back(4);
int sz(0);
sz=V.size();
int pos(0);
int elem(0);
cout<<"enter the position desired to modify here"<<endl;
cin>>pos;
cout<<"enter value to replace with here"<<endl;
cin>>elem;
InsertVector(V, sz, pos, elem);
PrintVector(V, sz);
}
注意:PrintVector 是我创建的另一个函数,它打印矢量的元素,具有以下形式:
void PrintVector(const vector <int> v1, int sz) {
for (int i(0);i<sz;i++) {
cout<<"V["<<i<<"] ="<<v1[i]<<endl;
}
}
当我编译Xcode时给出一个错误(lldb)。
提前谢谢你。
您不需要将所有值都移到右边。 V.insert()
自己会这样做。您可以删除最后一个元素来截断列表。要删除最后一个元素,请使用v.pop_back()
相关文章:
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用不带参数的函数访问结构元素
- 使用函数"remove"删除重复元素
- 如何将元素添加到数组的线程安全函数?
- 如何通过 getter 函数删除矢量的元素?
- 如何在C++向量中奇数元素前面加上值-1,我在使用insert函数时遇到了问题
- 复制包含C++所有元素的对象!(构造函数和赋值,最佳实践?
- 如何在基类指针向量的元素上应用重载的多态函数
- 这个返回元素位置的基于循环的函数有什么问题?
- 如何在 STL 函数中找到传递给谓词的元素的索引?
- 为什么用户定义的函数不按照给定的顺序对相同长度的元素进行排序?
- 如何为 std::vector 分配内存,然后稍后为某些元素调用构造函数?
- 交换函数不是在 C++ 中交换 2D 数组的元素
- C++:带有大括号初始化列表的函数调用表达式 - 标准是否规定在单个元素列表的微不足道的情况下忽略大括号?
- 如何在 c++ 中将整个数组初始化为类构造函数中的单个元素
- 动态分配列表 - 创建一个函数,用于删除所有包含偶数值的元素
- 使用并行参数向量调用元素向量的成员函数
- C 在双链接列表中删除元素函数
- 将类向量的两个函数返回值与其他类向量元素函数进行比较
- 访问c++中的列表元素函数