是否有任何替代引用数组,因为它在C ++中是不允许的? C ++标准8.3.2 / 4:
不应引用引用,不引用引用数组,也不引用引用指针。
编辑:
我正在编写两个类List<ObjectAttribute> objectAttributes = new List<ObjectAttribute>();
objectAttributes = new List<ObjectAttribute>();
objectAttributes = new List<ObjectAttribute>();
objectAttributes.Add(new ObjectAttribute(CKA.CKA_CLASS, CKO.CKO_PRIVATE_KEY));
objectAttributes.Add(new ObjectAttribute(CKA.CKA_KEY_TYPE, CKK.CKK_RSA));
CurrentSession.FindObjectsInit(objectAttributes);
var oObjCollection = CurrentSession.FindObjects(1);
if (oObjCollection.Count > 0)
{
oPrivKeyObjectHandle = oObjCollection[0];
}
List<ObjectAttribute> privKeyAttributes = new List<ObjectAttribute>();
if (oPrivKeyObjectHandle != null)
{
List<CKA> privKeyAttrsToRead = new List<CKA>();
privKeyAttrsToRead.Add(CKA.CKA_LABEL);
privKeyAttrsToRead.Add(CKA.CKA_ID);
privKeyAttrsToRead.Add(CKA.CKA_VALUE);
privKeyAttrsToRead.Add(CKA.CKA_VALUE_BITS);
privKeyAttributes = CurrentSession.GetAttributeValue(oPrivKeyObjectHandle, privKeyAttrsToRead);
}
CurrentSession.FindObjectsFinal();
和Cuboid
来在OpenGL中绘制一个长方体。设置位置,长方体的大小,它将计算存储在SFML中Quad
数组中的8个顶点位置。然后这些将在一个指针数组中传递,当你回答时,在四个sf::Vector3<>
中绘制。所以我不想将8个顶点复制到24个顶点,因为在一个长方体中有6个面(Quad
),每个面有4个顶点。我几乎没有使用指针。
答案 0 :(得分:5)
您可以使用指针数组:
Foo *array[10]; // array of 10 Foo pointers
这很大程度上取决于你想做什么。
答案 1 :(得分:0)
你可以使用一个指针数组,甚至更好的var myApp = angular.module('AngStarter', []);
myApp.directive("oblInLineEditor", function(){
return {
restrict: "E",
link: function(scope, elem, attrs) {
console.log(elem[0].id);
console.log(attrs.id)
}
}
});
个智能指针:
vector
答案 2 :(得分:0)
您可以使用标头std::reference_wrapper
中声明的<functional>
。
这是一个示范计划:
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <iterator>
int main()
{
int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
std::vector<std::reference_wrapper<int>> v( std::begin( a ), std::end( a ) );
for ( int x : v ) std::cout << x << ' ';
std::cout << std::endl;
std::for_each( v.begin(), v.end(), []( auto &r ){ r.get() *= 2; } );
for ( int x : a ) std::cout << x << ' ';
std::cout << std::endl;
std::sort( v.begin(), v.end(), std::greater<int>() );
for ( int x : v ) std::cout << x << ' ';
std::cout << std::endl;
for ( int x : a ) std::cout << x << ' ';
std::cout << std::endl;
}
程序输出
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
18 16 14 12 10 8 6 4 2
2 4 6 8 10 12 14 16 18