gpt4 book ai didi

c - 在 C 中移动 vector 内的所有值

转载 作者:行者123 更新时间:2023-11-30 19:42:51 25 4
gpt4 key购买 nike

我正在为一个项目编写代码,其中我需要在 vector 内移动值!例如,我有一个完全“空”的 vector :[0][0][0][0][0]

然后我将在其第一个位置添加一个值:[10][0][0][0][0]!

好吧,现在我需要再次向第一个位置添加一个值,但我不能丢失已经存在的值,我想将它移到右侧,例如:[0][10][0][0][0]

要将新的放在那里:[5][10][0][0][0]

然后再次执行此操作,再次将 5 和 10 向右移动,在第一个中添加新的,依此类推!我希望我说得足够清楚!

<小时/>

@编辑:

完成了伙计们! 感谢所有试图提供帮助的人!

使用@AkashPradhan函数解决了问题:

void changeposition(int* vetor, unsigned int size, int valor)
{
unsigned int i = size - 1;
for(; i > 0; --i)
vetor[i] = vetor[i-1] ;
vetor[0] = valor ;
}

谢谢@AkashPradhan!该函数与我的代码完美配合!

最佳答案

您可以使用链接列表并将其添加到前面的节点,也可以使用数组并将每次插入的元素移动一个位置。

在这种情况下,我建议使用链接列表,因为插入例程不会涉及移动每个元素。但是,如果需要频繁随机访问元素,请使用数组方法。

void insert_front(int* array, unsigned int size, int value)
{
unsigned int i = size - 1;
for(; i > 0; --i)
array[i] = array[i-1] ;
array[0] = value ;
}

请注意,该例程不会检查您插入的元素是否多于数组的大小。

关于c - 在 C 中移动 vector 内的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30440271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com