社区
C++ 语言
帖子详情
vector如何将一个后面的元素移到最前面?
yyyyxf
2006-06-27 10:03:25
rt
...全文
1364
10
打赏
收藏
vector如何将一个后面的元素移到最前面?
rt
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ahao
2006-06-28
打赏
举报
回复
他问的是vector,没有问vector<int>,怎么能用memmove?
OOPhaisky
2006-06-27
打赏
举报
回复
sharpdew(风刃)的方法效率很高,但是太“底层”了,呵呵
sankt
2006-06-27
打赏
举报
回复
楼上的方法很好
学习
sharpdew
2006-06-27
打赏
举报
回复
直接移动内存要快多了!
sharpdew
2006-06-27
打赏
举报
回复
何必那么复杂呢:
vector<int> vec;
for(int i=0;i<10;++i)
vec.push_back(i+1);
int last = *(vec.end()-1);
int* pos = &vec[0];
memmove(pos+1 ,pos, sizeof(int)*(vec.size()-1));
*vec.begin() = last;
bird1982
2006-06-27
打赏
举报
回复
把最后一个挖出来扔到第一个不就好了吗?
sankt
2006-06-27
打赏
举报
回复
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> vec;
int i;
for(i=0;i<10;++i)
{
vec.push_back(i);
}
int temp;
temp = vec.at(9);
vec.pop_back();
vec.insert(vec.begin(),temp);
vector<int>::iterator ite;
for(ite = vec.begin();ite<vec.end();++ite)
{
cout<<*ite<<" ";
}
cout<<endl;
system("pause");
return 0;
}
sankt
2006-06-27
打赏
举报
回复
一种方法就是使用一个临时变量temp即可
首先保存最后一个变量的值到temp,然后前面的的元素逐一后移一个位置,最后temp变量的值赋给首位即可
triace_zhang
2006-06-27
打赏
举报
回复
int ia[] = {1,2,3,4};
vector<int> ivec(ia,ia + 4);
int tmp = *(ivec.end() - 1); //保存最后一个元素
ivec.pop_back(); //删除最后一个元素
ivec.insert( ivec.begin(), tmp ); //插入元素到开头
vector<int>::iterator iter = ivec.begin();
for ( ; iter != ivec.end(); iter++ )
{
cout << *iter << endl;
}
stan_uni
2006-06-27
打赏
举报
回复
学习一下
C++
Vector
操作
注意插入或删除中间某一项需要线性时间,即把这个
元素
后面
的所有
元素
往后移或者往前移。如果频繁移动,则效率很低。注意删除某一项是它
后面
所有的项(
后面
所有项看做
一个
整体)往前移动一位,而不是把删除的这一项变为0。a.clear()只是清空数据,系统为
vector
分配的内存还在。 做
一个
题能更好掌握,例题演示: HDU4841“圆桌问题” AC代码: #include<iostream> ...
在
vector
中删除
一个
元素
如果想要删除
vector
中值为val的
元素
,最容易想到的方法就是对
vector
进行遍历,然后遇到值为val时就将其删除。比较好的是
vector
容器有erase操作。 但是这儿需要注意,与list中的erase不同,list的erase操作之后,之前获得的迭代器还是有效的,而在
vector
中因为
vector
是顺序存储,所以,一旦删除
一个
元素
,之前获得的迭代器就会失效了,
vector
.begin()和...
vector
添加
元素
的两个函数
vector
添加
元素
的两个函数 push_back() 该成员函数的功能是在
vector
容器尾部添加
一个
元素
,用法也非常简单,比如: #include <iostream> #include <
vector
> using namespace std; int main() {
vector
<int> values{}; values.push_back(1); values.push_back(2); for (int i = 0; i
C++
Vector
的用法
C++内置的数组支持容器的机制,但是它不支持容器抽象的语义。要解决此问题我们自己实现这样的类。在标准C++中,用容器向量(
vector
)实现。容器向量也是
一个
类模板。 标准库
vector
类型使用需要的头文件:#include 。
vector
是
一个
类模板。不是一种数据类型,
vector
是一种数据类型。
Vector
的存储空间是连续的,list不是连续存储的。 一、 定义和初始化
vector
每天一道LeetCode-----将数组/链表后k个
元素
移动到
前面
Rotate Array原题链接Rotate Array 回转
一个
给定数组k步,本质上是将后k个
元素
移动到
前面
(需要保证k小于数组
元素
个数)不在原数组上操作的话比较简单,新开
一个
vector
保存回转后的顺序,然后copy到原数组上,时间和空间复杂度都是O(n)如果需要在原数组上操作的话,就不能有额外的空间使用消耗。那么有如下技巧 将数组后k个
元素
逆序 将数组前n - k个
元素
逆序 将整个数组逆
C++ 语言
65,189
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章