簡體   English   中英

如何在 C++ 中列表的單個位置插入多個不同的值?

[英]How can i insert multiple different values in single position of list in c++?

此代碼來自geeksforgeeks

list<int> list1; 

list1.assign(3, 2); 


list<int>::iterator it = list1.begin(); 

 
advance(it, 2); 


list1.insert(it, 5); 

 
cout << "The list after inserting"
     << " 1 element using insert() is : "; 
for (list<int>::iterator i = list1.begin(); 
     i != list1.end(); 
     i++) 
    cout << *i << " "; 

cout << endl; 


list1.insert(it, 2, 7); 

 
cout << "The list after inserting"
     << " multiple elements "
     << "using insert() is : "; 

for (list<int>::iterator i = list1.begin(); 
     i != list1.end(); 
     i++) 
    cout << *i << " "; 

cout << endl; 

它顯示如下輸出:-

   The list after inserting 1 element using insert() is : 2 2 5 2 
   The list after inserting multiple elements using insert() is: 2 2 5 7 7 2

所以,我想在一個位置添加不同的值而不是相同值的重復。 這甚至可能嗎? 用於在列表的第三個位置插入 1,3,7。

檢查參考

您可以使用insert()

template< class InputIt >
void insert( iterator pos, InputIt first, InputIt last);            (until C++11)

template< class InputIt >
iterator insert( const_iterator pos, InputIt first, InputIt last ); (since C++11)

例子:

#include <iostream>
#include <vector>
#include <list>

int main(void) {
    std::list<int> list1 = {2, 2, 5, 2};
    std::vector<int> to_insert = {1, 3, 7};

    std::cout << "before insert:";
    for (int v : list1) std::cout << ' ' << v;
    std::cout << '\n';

    list1.insert(std::next(list1.begin(), 2), to_insert.begin(), to_insert.end());

    std::cout << " after insert:";
    for (int v : list1) std::cout << ' ' << v;
    std::cout << '\n';

    return 0;
}

輸出:

before insert: 2 2 5 2
 after insert: 2 2 1 3 7 5 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM