std::deque::assign
调整deque容器的内容,替换其中的内容,并修改其大小。
新的内容从范围first到last。
In the fill version (2), the new contents are n elements, each initialized to a copy of val.
新的内容一共有n个元素,每个元素的值都是val.
In the initializer list version (3), the new contents are copies of the values passed as initializer list, in the same order.
从初始化列表构造器中构造新的内容。
If there are changes in storage, the internal allocator is used (through its traits ). It is also used to destroy all existing elements, and to construct the new ones.
如果内存存储发生变化,使用内部的分配器。
Any elements held in the container before the call are destroyed and replaced by newly constructed elements (no assignments of elements take place).
所有之前的元素都将被销毁以及替换成新的元素。
例子:
#include <iostream>
#include <deque>
#include <vector>
using namespace std;
int main()
{
deque<int> di{1,2,3,4,5};
cout<<"at first "<<endl;
cout<<"di= ";
for(int i:di)
cout<<i<<" ";
cout<<endl;
vector<int> vi{10,20,30};
di.assign(vi.begin(),vi.end());
cout<<"after di.assign(vi.begin(),vi.end()) "<<endl;
cout<<"di= ";
for(int i:di)
cout<<i<<" ";
cout<<endl;
di.assign(7,188);
cout<<"after di.assign(7,188) "<<endl;
cout<<"di= ";
for(int i:di)
cout<<i<<" ";
cout<<endl;
di.assign({111,222,333});
cout<<"after di.assign({111,222,333}) "<<endl;
cout<<"di= ";
for(int i:di)
cout<<i<<" ";
cout<<endl;
}
Parameters
-
first, last
-
Input iterators to the initial and final positions in a sequence. The range used is [first,last), which includes all the elements between first and last, including the element pointed by first but not the element pointed by last.
The function template argument InputIterator shall be an input iterator type that points to elements of a type from whichvalue_type objects can be constructed.
-
序列用于替换的位置,范围为[first,last)。
-
//今后的翻译将以简洁为主,翻译其主要意思,不再每句翻译。
n
-
New size for the container.
Member type size_type is an unsigned integral type. -
n为新容器的大小。
val
-
Value to fill the container with. Each of the n elements in the container will be initialized to a copy of this value.
Member type value_type is the type of the elements in the container, defined in deque as an alias of its first template parameter (T).
-
填满容器元素的值val.
il
-
An initializer_list object. The compiler will automatically construct such objects from initializer list declarators.
Member type value_type is the type of the elements in the container, defined in deque as an alias of its first template parameter (T).
-
一个初始化列表对象。
Return value
noneExample
| |
Output:
Size of first: 7
Size of second: 5
Size of third: 3
|
Complexity
Linear in initial and final sizes (destructions, constructions).Iterator validity
All iterators, pointers and references related to this container are invalidated.Data races
All copied elements are accessed.The container is modified.
All contained elements are modified.
Exception safety
Basic guarantee: if an exception is thrown, the container is in a valid state.If allocator_traits::construct is not supported with the appropriate arguments for the element constructions, or if the range specified by[first,last) is not valid, it causes undefined behavior.
——————————————————————————————————————————————————————————————————
//翻译的不好的地方请多多指导,可以在下面留言或者点击左上方邮件地址给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。
//今后的翻译将以简洁为主,翻译其主要意思,不再每句翻译。
转载请注明出处:http://blog.csdn.net/qq844352155
author:天下无双
Email:coderguang@gmail.com
2014-9-1
于GDUT
——————————————————————————————————————————————————————————————————