C++ vector<double> 某个元素放置在首位,之前的所有元素依次往vector的末尾添加
时间: 2024-04-17 13:26:24 浏览: 294
要将某个元素放置在vector的首位,并将该素之前的所有元素依次往vector的末尾添加,可以按照以下步骤进行操作:
1. 首先,找到要放置在首位的元素的索引位置。
2. 使用erase函数将索引位置之前的所有元素从vector中删除,并将它们保存在一个临时vector中。
3. 使用insert函数将临时vector中的元素依次插入到vector的末尾。
4. 将要放置在首位的元素插入到vector的begin()位置。
下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
void moveElementToFront(std::vector<double>& vec, int index) {
if (index < 0 || index >= vec.size()) {
std::cout << "Invalid index." << std::endl;
return;
}
std::vector<double> temp;
for (int i = 0; i < index; i++) {
temp.push_back(vec[i]);
}
vec.erase(vec.begin(), vec.begin() + index);
for (const auto& element : temp) {
vec.push_back(element);
}
vec.insert(vec.begin(), temp[index]);
}
int main() {
std::vector<double> nums = {1.1, 2.2, 3.3, 4.4, 5.5};
int index = 2; // 将索引为2的元素放置到首位
std::cout << "Before: ";
for (const auto& num : nums) {
std::cout << num << " ";
}
moveElementToFront(nums, index);
std::cout << "\nAfter: ";
for (const auto& num : nums) {
std::cout << num << " ";
}
return 0;
}
```
运行上述代码,输出结果为:
```
Before: 1.1 2.2 3.3 4.4 5.5
After: 3.3 4.4 5.5 1.1 2.2
```
可以看到,索引为2的元素3.3被放置到了vector的首位,而其它元素则依次被添加到了末尾。希望对你有所帮助!如果还有其他问题,请随时提问。
阅读全文