我有一个数据结构,我想在函数中制作一个精确的副本。例如,x已经填满了,我想把它作为一个精确的副本。
#The FOR statement
import maya.cmds as mc
def process_all_textures(**kwargs):
pre = kwargs.setdefault('prefix', 'my_')
textures = kwargs.setdefault('texture_nodes')
new_texture_names = []
for texture in textures:
new_texture_names.append(mc.rename(texture,'%s%s'%(pre, texture)))
return new_texture_names
#create new Maya scene & list 3 file nodes & print their names
mc.file(new=True,f=True)
textures = []
for i in range(3):
textures.append(mc.shadingNode('file',asTexture=True))
print(textures)
#pass new texture list to process_all_textures() func and print resulting names
new_textures = process_all_textures(texture_nodes = textures,prefix = 'dirt_')
print(new_textures)
[u'file1', u'file2', u'file3']
[u'dirt_file1']
由于它的嵌套特性,我对于正确的语法是多么困惑。到目前为止,我有这个,但它显然是不完整的,因为我不知道如何在每个向量索引处访问列表中的第一个和第二个成员对。
std::vector<std::list<std::pair<T,K>>> x; // T and K are template parameters
std::vector<std::list<std::pair<T,K>>> y;
有人会介意帮助我思考我需要做什么吗?感谢。
答案 0 :(得分:2)
要使\0
完全等于y
,请使用以下代码:
x
答案 1 :(得分:0)
只需使用以下内容:
y = x;
答案 2 :(得分:0)
如果 T 和/或 K 是用户定义的类型并包含任何指针,那么您需要为这些类型重载赋值运算符(遵循规则5)。休息是在STL,因为STL的容器有他们的=运算符的实现,并且正如其他人提到的那样,只是做&#34; y = x;&#34;就够了。